Dieser Blog dient zur Hilfe und Anleitung bei verschiedenen Problem im Bereiche der Informatik. Probleme und Fragen die ich gelöst habe werde ich hier der Internet Community zur Verfügung stellen.
Suche:
Mittwoch, 24. November 2010
Froyo für Galaxy S
Ein genaues Veröffentlichungsdatum steht jedoch nicht zur verfügung. Dies geht aus einer Twitter-Konversations von mir mit der Swisscom hervor.
Bin mal gespannt auf Froyo :-)
Übrigens gibt es auch die möglichkeit eine ungebrandete Version von Froyo auf das Handy zu spielen. Dazu muss man einfach ein paar Einstellungen danach abändern. Wer Interesse daran hat, findet im Internet sicher ein paar gute Anleitungen.
Freitag, 5. November 2010
PHP MySQL Datenbank Anbindung
How To Make Connection to DB
$dbname="testdb";
$dbhost="localhost";
$dbuser="username";
$dbpass="password";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
$SQL="INSERT INTO teilnehmer(lastName,firstName,abteilung,jahrgang)VALUES('$lastName','$firstName','$abteilung','$jahrgang')";
mysql_query($SQL);
Donnerstag, 14. Oktober 2010
Android 2.2 für Galaxy S - Quellcode veröffentlicht
Quelle: golem.de
Auf dem offiziellen Twitterkanal entschuldigt sich Samsung fast täglich für die Verspätung des Froyo Updates, neue Informationen dazu sind allerdings leider noch nicht verfügbar.
Samsung Mobile - Twitter
Freitag, 8. Oktober 2010
About Me
Hallo, mein Name ist Beni Ackle. Ich bin Informatiker und befinde mich aktuell in der Ausbildung, im 3 Lehrjahr. Auf diesem Blog möchte ich verschiedene Anleitungen veröffentlichen. Hauptsächlich zum Thema Programmieren.
Ich arbeite bei der SFS services AG in Heerbrugg. Dort geniesse ich eine hervoragende Ausbildung und darf im Bereich Mobile Development erste Erfahrungen sammeln.
Informationen die ich zusammengetragen habe, werde ich dann auf diesem Blog veröffentlichen.
Freitag, 1. Oktober 2010
Adobe PDF: Interaktiv mit JavaScript
Einführung
Um ein Interaktives PDF zu erstellen brauchen wir eine entsprechende Software. Adobe hat hier eine komfortable Software mit dem Namen Adobe LiveCycle Designer. Diese ist einfach und Intuitiv zu bedienen, nur der JavaScript Editor ist anfangs etwas Gewöhnungsbedürftig.
Im Adobe LiveCycle Designer kann man ein bereits vorhandenes PDF importieren und danach darüber ein Formular mit diversen Funktionen legen.
Um Funktionen oder Felder hinzuzufügen wählen wir auf der rechten Seite unter Library das gewünschte Element aus und ziehen es per Drag and Drop auf unser PDF. Dieses Element können wir nachher anwählen und auf der rechten Seite unter Object diverse Einstellungen setzen. Hier ist es Möglich den Typ, Formatierung, Ausrichtung, Position, Default Wert, Name und Validierungsoptionen zu setzen.
Der Java Script Editor
Um den Java Skript Editor zu öffnen gehen wir in der Programmleiste unter Window auf Script Editor. (CTRL + Shift+F5) Der Script Editor wird nun geöffnet. Dieser ist wahrscheinlich noch leer und grau hinterlegt. In der Titelleiste können wir nun diverse Optionen auswählen. Unter Show kann man sich für jedes Element das gewünschte Event anzeigen lassen. fn zeigt diverse verfügbare Funktionen an. Unter Language kann man zwischen JavaScript und FormCalc auswählen. FormCalc erinnert ein bisschen an die Formeln wie wir sie aus dem Excel kennen. Als letztes kann man noch auswählen ob das Script Clientseitig oder Serverseitig ausgeführt werden soll.
Um nun etwas zu programmieren wählen wir nun ein Feld aus. Danach lassen wir uns unter "Show" "All Events" anzeigen. Wir sehen nun alle verfügbaren Methoden. Näheres zu den wichtigsten Methoden
Java Script anwenden - Teil 1
Variable erstellen
Um Codevorschläge anzuzeigen klicken wir auf fn. Nach jedem Punkt den wir schreiben werden die Vorschläge automatisch angezeigt.
Als erstes erstellen wir eine Variable, in der wir einen String speichern, diesen String string geben wir später in einer messageBox wieder aus. Der Code dazu sieht folgendermassen aus:
var initialisiert die Variable, danach kommt der Name der Variable, welcher nun ein Wert zugewiesen wird. Diesen Wert nehmen wir aus einem Textfeld auf dem PDF. Dazu müssen wir den "Pfad" zu diesem Feld angeben. Am Schluss dieses Pfades steht der Feldname. Mit rawValue lesen wir dann schlussendlich den Inhalt dieses Feldes aus.
Message Box
Den Wert der obigen Variable geben wir nun in einer Message-Box aus:
Für weitere Informationen zu den verschiedenen Parametern kann man hier weiter lesen:
Adobe - messageBox
Weitere Java-Script Methoden finden Sie hier: Java Script anwenden - Teil 2
FormCalc anwenden
FormCalc ist ähnlich wie Excel und empfiehlt sich für einfache Berechnungen im PDF. Unter Language wechseln wir die Sprache auf FormCalc. Wollen wir dies nur für eine Funktion machen, können wir dies mit Rechtsklick - FormCalc erledigen.
Berechnungen machen wir immer im Event calculate. Wir klicken einfach in der Titelleiste auf fn und wählen hier unsere benötigte Methode aus.
So summiert man zum Beispiel verschiedene Zahlen oder Felder miteinander.
Mittwoch, 29. September 2010
Adobe PDF - Java Script anwenden - Teil 2
Object's mit JavaScript zählen
Um alle Object's auf dem PDF zu zählen verwenden wir folgenden Code:
Diese Methode gibt die zuerst ein Array mit allen Object's des PDF's zurück. Danach wird mit .length die Grösse dieses Arrays zurückgegeben. Dies entspricht der Anzahl aller Felder und Buttons auf dem PDF.
Bestimmtes Object suchen
Um ein oder mehrere Object's auf dem PDF anzusprechen wählen wir diese mit einer for-Schleife aus. In diesem Beispiel werden alle Felder die mit "SCR-" beginnen ausgewählt.
{
var field=topmostSubform.Page1.nodes.item(i)
var fieldName=field.name
if (fieldName.substr(0,4)=="SCR-")
{
// Self generatet Code
}
}
Für jedes Feld auf dem PDF wird überprüft, ob es mit "SCR-" beginnt. Trifft dies zu, kann eine beliebige Funktion aufgerufen oder ausgeführt werden.
Dienstag, 28. September 2010
Adobe LiveCycle Designer - Vordefinierte Methoden
Hier möchte ich noch ein paar der wichtigsten vordefinierten JavaScript Methoden, im LiveCycle Designer von Adobe, vorstellen.
initialize
Wird für alle Objekte initiiert, nachdem der Formularentwurf mit Daten zusammengeführt wurde.
Mit diesem Ereignis können Sie beim Erstellen eines Objekts Aktionen ausführen, die entweder durch eine Benutzeraktion beim Ausfüllen des Formulars oder im Rahmen des Formularerstellungsprozesses verursacht werden. Beispielsweise können Sie die Einstellungen für neue Instanzen eines Teilformularobjekts steuern, welche der Benutzer dem Formular durch Klicken auf eine Schaltfläche hinzufügt.
Adobe - initialize-Ereignisenter
Wird ausgelöst, wenn ein Feld oder Teilformular den Tastaturfokus erhält, und zwar unabhängig davon, ob dies durch eine Benutzeraktion verursacht wird (Wechsel in ein Feld per Tabulatortaste oder Mausklick) oder durch ein Skript, welches den Fokus programmatisch setzt.
Mit diesem Ereignis können Sie Hilfetext oder andere Meldungen bereitstellen, welche dem Benutzer das Ausfüllen des aktuellen Feldes oder Teilformulars erleichtern. Angenommen, in ein Feld muss ein Wert in einem bestimmten Format eingegeben werden oder beim Ausfüllen eines Feldes sind spezifische Anweisungen zu beachten. In diesem Fall können Sie mit diesem Ereignis eine Meldung einblenden, welche den Benutzer über die besonderen Anforderungen informiert.
Adobe - enter-Ereignisexit
Wird ausgelöst, wenn das Feld oder Teilformular den Tastaturfokus verliert, und zwar unabhängig davon, ob dies durch eine Benutzeraktion verursacht wird (Wechsel in ein anderes Feld per Tabulatortaste oder Mausklick außerhalb des Feldes) oder durch ein Skript, welches den Fokus programmatisch entfernt.
Dieses Ereignis eignet sich zur Überprüfung von Felddaten, wenn der Benutzer den Fokus von einem Feld entfernt. Angenommen, in ein Feld muss ein Wert eingegeben werden. In diesem Fall können Sie mit diesem Ereignis eine Meldung bereitstellen, welche den Benutzer darauf aufmerksam macht, dass das Formular nur gesendet werden kann, wenn in dieses Feld Daten eingegeben wurden.
Adobe - exit-Ereigniscalculate
Das Ereignis calculate eignet sich zur Aktualisierung von Zahlenwerten in Feldern, weil es unmittelbar nach den meisten anderen Ereignissen initiiert wird. Beispielsweise könnten Sie in einem Bestellformular mit dem Ereignis calculate für ein Feld den Prozentwert der Umsatzsteuer anhand der Bestellkosten errechnen. Die Berechnung wird jedes Mal ausgeführt, wenn die Werte in den Formularfeldern geändert werden. Auf diese Weise wird gewährleistet, dass der für die Umsatzsteuer angezeigte Wert immer korrekt ist.
Adobe - calculate-Ereignisvalidate
Wird initiiert, wenn Formularentwurf und Daten zum Formular zusammengeführt werden und wenn ein Feld den Fokus verliert, z. B. wenn ein Benutzer klickt oder die Tabulatortaste drückt, um ein Feld zu verlassen. Dieses Ereignis wird jedes Mal ausgelöst, wenn sich der Wert eines Feldes ändert. Mit Berechnungen und Skripten, die auf dem Ereignis validate platziert werden, lassen sich Überprüfungen durchführen, die spezifischeren Charakter haben als die über die Registerkarte "Wert" der Palette "Objekt" verfügbaren Überprüfungen.
Mit diesem Ereignis können Sie Objektwerte überprüfen. Es eignet sich insbesondere für Situationen, in denen Objektdaten mit bestimmten Regeln übereinstimmen müssen.
Adobe - validate-EreignismouseEnter
Dieses Ereignis wird ausgelöst, wenn der Benutzer beim Ausfüllen des Formulars den Mauszeiger in den Feldbereich bewegt; dabei muss nicht notwendigerweise die Maustaste gedrückt werden.
Sie können dieses Ereignis mit dem Ereignis mouseExit kombinieren, um dem Benutzer beim Ausfüllen des Formulars visuelles Feedback zu liefern. Beispielsweise können Sie mit diesem Ereignis die Rahmen- oder Hintergrundfarbe eines Objekts ändern, damit der Benutzer beim Ausfüllen visuell erkennen kann, dass er sich zurzeit in einem bestimmten Feld befindet.
Adobe - mouseEnter-EreignismouseExit
Dieses Ereignis wird ausgelöst, wenn der Benutzer beim Ausfüllen des Formulars den Mauszeiger aus dem Feld herausbewegt, auch wenn er dabei die Maustaste gedrückt hält.
Sie können dieses Ereignis mit dem Ereignis mouseEnter kombinieren, um dem Benutzer beim Ausfüllen des Formulars visuelles Feedback zu liefern.
Adobe - mouseExit-Ereignischange
Wird ausgelöst, wenn ein Benutzer beim Ausfüllen des Formulars den Inhalt eines Feldes durch eine definierte Aktion ändert.
Dieses Ereignis eignet sich für Berechnungen oder Skripten, die ausgelöst werden müssen, wenn ein Benutzer beim Ausfüllen des Formulars den Wert eines Feldes ändert.
Adobe - change-EreignismouseDown
Wird initiiert, wenn ein Benutzer beim Ausfüllen des Formulars die Maustaste drückt, während sich der Zeiger in einem Feld befindet.
Dieses Ereignis eignet sich für die Ausführung einer Aktion, nachdem ein Benutzer im Formular auf eine Schaltfläche geklickt oder ein Optionsfeld bzw. ein Kontrollkästchen aktiviert hat.
Adobe - mouseDown-Ereignisclick
Wird initiiert, wenn innerhalb des Bereichs ein Mausklick erfolgt. Wenn ein click-Ereignis für ein Text- oder numerisches Feld ausgelöst wird, werden Berechnungen oder Skripten sofort ausgeführt. Der Wert des Feldes wird aber erst dann aufgrund von Berechnungen und Skripten geändert, wenn das Feld den Fokus verliert.
Dieses Ereignis eignet sich für die Ausführung einer Aktion, nachdem ein Benutzer im Formular auf eine Schaltfläche geklickt oder ein Optionsfeld bzw. ein Kontrollkästchen aktiviert hat. Beispielsweise können Sie mit dem Ereignis click für ein Kontrollkästchen ein Formularfeld ein- und ausblenden.
Adobe - click-EreignisdocClose
Wird ganz am Ende der Verarbeitung eines Formulars ausgeführt, sofern sämtliche Formularüberprüfungen fehlerfrei durchgeführt wurden.
Dieses Ereignis wird erst spät ausgelöst und führt keine Änderungen am gespeicherten Formular durch. Es soll vielmehr die Möglichkeit bieten, einen Beenden-Status oder eine Fertig-Meldung zu erzeugen.
Adobe - docClose-EreignisWeiter Methoden finden Sie hier:
Adobe - EreignisseSamstag, 25. September 2010
Samsung Galaxy S i9000 - Codes
Ich habe beim Surfen noch ein paar interessante Codes für das Samsung Galaxy S i9000 gefunden.
Codes
Info und Handy Einstellungen
*#*#INFO#*#* | Zeigt Informationen an |
Kamera Firmware
*#*#34971539#*#* | Zeigt Kamera Firmware an |
Betrieb Tests
*#*#0283#*#* | Packet Loopback | |
*#*#0*#*#* | "LCD TEST": rot/grün/blau screen, Rufton, Vibration, Abblendung, Megacam, Sensor, Touch, Schlafmodus | |
*#*#0673#*#* or *#*#0289#*#* | Rufton Test | |
*#*#0842#*#* | Vibration + BackLight Test | |
*#*#2663#*#* | Anzeige der Touch Screen Version | |
*#*#2664#*#* | Touch Screen Test (nicht äquivalent zum LCD Test) | |
*#*#0588#*#* | Umgebungssensor Test | |
*#*#3264#*#* | Anzeige der RAM Version |
WLAN Test
*#*#232339#*#* oder *#*#526#*#* oder *#*#528#*#* | Startet WLAN Test |
Anzeige der WiFi MAC Addresse
*#*#232338#*#* | Anzeige der WiFi MAC Addresse |
GPS
*#*#1472365#*#* | GPS Testprogramm | |
*#*#1575#*#* | Ein anderes GPS Testprogramm. Zeigt SV Info und Positions Informationen wenn man ein GPS-Ortssignal erhalten hat. |
Bluetooth
*#*#232331#*#* | Bluetooth RF Test Modus | |
*#*#232337#*#* | Zeige Bluetooth Device Addresse |
Service Modus
*#*#197328640#*#* | Service Modus |
Das Gerät wechselt in den Service Modus. Um den Servicemodus zu beenden einfach auf die Menu Taste drücken. Für diesen Modus gibt es folgende Codes:
*#*#0011#*#* | Anzeige der GSM Informationen | |
*#*#0228#*#* | Zeige Antenne und ADC test. Drücke die Menutaste dann wähle "Back" für weiter Optionen: Basic, MM, RR, GPRS, SIM Information, GSM Neighbour Cell, Handover, Phone control | |
*#*#0782#*#* | RTCTimeRead | |
*#*#9090#*#* | UART Diag | |
*#*#7284#*#* | UART Diag | |
*#*#4238378#*#* | Einstellungen | |
*#*#2263#*#* | Setze GSM/UMTS Frequenzbereich | |
*#*#2264#*#* | WCDMA Einstellungen | |
*#*#6984125*#*#* | auto Antwort | |
*#*#2886#*#* | auto Antwort | |
*#*#2767*2878#*#* | NV zurücksetzten & rebuild (Erfordert Neustart) | |
*#*#147852#*#* or *#*#369852#*#* or *#*#1478963#*#* | Teste Apn Einstellungen | |
*#*#02280#*#* | Batterie Status auslesen | |
*#*#03#*#* | Zeige Nand Flash Unique Nummer | |
*#*#0589#*#* | Zeige Lichtsensor Informationen | |
*#*#745#*#* | Ril Log. Man kann das Log anschauen oder auf die SD Karte speichern |
Ausschalten
*#*#7594#*#* | Shutdown |
Quelle:
android-dls.com - CodesFreitag, 24. September 2010
AD Gruppen auslesen
Einleitung
In diesem Artikel geht es darum, mit einem C# Programm eine ActiveDirectory - Gruppen abfrage zu realisieren.Ich möchte herausfinden, ob dem User eine bestimmte Gruppe zugewiesen ist, um danach je nach Ergebniss eine andere Aktion ausführen zu können.
Vorwissen
Wenn ein User im ActiveDirectory einer Gruppe zugewiesen wird, kann man sich diese zum Beispiel in der Computerverwaltung ansehen. Unter User und Gruppen wird diese Gruppe dann eingetragen. In dieser Anleitung machen wir einen Loop über alle vorhandenen Gruppen und warten, bis die gesuchte Gruppe kommt.Funktion zum Auslesen der AD Gruppe
{
Boolean groupState = false;
foreach (System.Security.Principal.IdentityReference group in System.Security.Principal.WindowsIdentity.GetCurrent().Groups)
{
if ((group.Translate(typeof(System.Security.Principal.NTAccount))).ToString() == "Domäne\\AD-Group")
{
groupState = true;
break;
}
else
{
groupState = false;
}
return groupState;
}
Mittwoch, 8. September 2010
Die Java Properties Datei
Die Properties Datei
Die Java Properties Dateien sind normale Textdateien, die als einfaches Konfigurationswerkzeug dienen. Diese Dateien können unter einem beliebigen Namen abgelegt werden. Die Dateiendung lautet .properties.
Beispiel
! Ebenfalls Kommentar
Portnummer 3128
hostname = beispielhost
sprache:de
langerText Dieser Text \
ist länger als eine Zeile
Es gibt 3 Möglichkeiten um Schlüssel, Werte und normale Werte einzugeben.
- Mit Leerzeichen, wobei die Menge der Leerzeichen keine Rolle spielt. Wie im obigen Beispiel der Schlüssel "Portnummer" sowie der Wert "3128".
- Mit Gleichheitszeichen, die Anzahl Leerzeichen ist gleichgültig. So wie im obigen Beispiel "hostname" und "beispielhost"
- Mit einem Doppelpunkt, auch hier spielt die Anzahl Leerzeichen keine Rolle
Um den Text auf der nächsten Linie fortzuführen, kann man einen Zeilenumbruch mit folgendem Zeichen realisieren: \
Aufruf im Java Code
Der folgende Code ruft das Properties File "beispiel.properties" auf. Danach wird aus diesem File der Wert "hostname" ausgelesen.
Properties prop = new Properties();
try
{
prop.load(new FileInputStream(propertyFile));
// Properties File laden
}
catch (IOException e)
{
// Wenn das laden fehlgeschlagen ist
}
String hostname = prop.getProperty("hostname");
Dienstag, 31. August 2010
Transparenter Bildschirmschoner erstellen
Einleitung
Dieses HowTo baut auf dem Artikel "C# / .Net - Bildschirmschoner erstellen" auf.Anwendungs - Szenario
Wieso einen Transparenten Bildschirmschoner erstellen? Ein mögliches Anwendungs - Szenario für einen Transparenten Bildschirmschoner könnte folgendermassen aussehen:Sie möchten eine hohe Sicherheit am Arbeitsplatz bieten. Niemand soll etwas an ihrem Computer machen können wenn sie länger abwesend sind. Gleichzeitig wollen Sie jedoch jeder Zeit sehen was auf Ihrem Computer gerade läuft. Nun können sie einfach den Transparenten Bildschirmschoner aktivieren und eine Zeitspanne eingeben, nach der der Bildschirmschoner aktiviert wird. Eventuelle Messdaten oder sonstige Aktivitäten wie Videos laufen immer sichtbar weiter. Sobald jedoch jemand etwas machen will am Computer wird dieser gesperrt und eine Passwortabfrage eingeleitet
Dies kann sehr nützlich sein im Business Umfeld. In der Produktion ist es häufig so, dass der User nicht selbst am Computer ist, aber den Computer trotzdem braucht, weil darauf Messdaten laufen.
Vorbereitung
Dieses HowTo baut auf dem Artikel "C# / .Net - Bildschirmschoner erstellen" auf.Transparenz in .Net / C#
Nachdem wir den Grundbildschirmschoner programmiert haben, fügen wir nun Transparenz hinzu. Bei .Net gibt es mehrere Arten von Transparenz. Wobei nur eine Variante so funktioniert wie wir das wollen.Opacity Value = 40% |
Das sieht im Code dann folgendermassen aus:
Die folgenden Möglichkeiten funktionieren nicht, da Sie zwar eine Transparenz erzeugen, die aber auch für User Interaktionen gilt. Das heisst, wenn man danach etwas anklickt wird der Event an das dahinter liegende Fenster weitergereicht.
- Bei den Properties der erstellten Form, den TransparencyKey auf die Hintergrundfarbe der Form zu wechseln.
- Eine weitere Möglichkeit ist es den
this.BackColorWert auf
this.BackColor = System.Drawing.Color.Transparent;zu setzen. Dazu muss man Transparenz mit folgendem Code noch erlauben:
this.SetStyle(ControlStyles.SupportsTransparentBackColor, True); - Des weiteren kann man die Transparenz auch mit dem Alpha-Kanal setzen:
this.BackColor = System.Drawing.Color.FromArgb(100, 255, 255, 255);
Bildschirm sperren
Unter Windows kann man den Bildschirm sperren lassen, sobald der Bildschirmschoner beendet wird. Diese Einstellung kann man direkt im Bildschirmschoner Menu aktivieren. Das Problem dabei ist jedoch, dass bei dieser Variante der ganze Explorer ausgeblendet wird.Um dies zu umgehen sperre ich den Computer direkt aus dem Bildschirmschoner heraus.
Als erstes muss die benötigte Funktion aus dem Windows System verfügbar gemacht werden. Dies geht folgendermassen:
{
[DllImport("user32.dll")]
public static extern bool LockWorkStation();
}
Danach kann man diese Funktion aus dem Code heraus verwenden. Um dies zu realisieren habe ich folgende Methode erstellt:
{
Win32.LockWorkStation();
Close();
}
Bildschirmschoner erstellen
Nun müssen wir nur noch aus der .exe Datei eine .scr Datei erstellen.Montag, 30. August 2010
C# / .Net - Bildschirmschoner erstellen
Einführung
In diesem Artikel möchte ich erklären, wie man einfach mit C# einen eigenen Bildschirmschoner programmieren kann. Dazu werde ich in diesem Artikel die Grundlagen vermitteln. Aufbauend dazu habe ich noch eine Anleitung für einen "transparenten Bildschirmschoner". Ich habe das ganze mit Visual Studio von Microsoft programmiert.Bei einem Bildschirmschoner wird eine Windows Form erstellt. Der Rahmen wird deaktiviert, so dass wir nur noch eine nackte Windows Form haben. Diese Form wird beim Laden des Bildschirmschoners an die Grösse des Bildschirmes angepasst.
Vorbereitung
Als erstes erstellen wir im Visual Studio eine neue "Windows Forms Application". Eine Form wird somit automatisch erstellt. Da wir für den Bildschirmschoner jedoch keinen Rand um das Fenster wollen deaktivieren wir diesen bei den Properties unter FormBorderStyle, indem wir hier den Wert None setzen. Danach wählen wir mit Color eine Hintergrundfarbe für unseren Bildschirmschoner. Alternativ lässt sich als Hintergrund auch ein Bild einbinden. Somit währen die Vorbereitungen bereits abgeschlossen.Hauptprogramm
Main Methode erstellen
Als erstes erstellen wir die Main Methode. Von dieser aus wird nachher der Bildschirmschoner gestartet. Wenn man unter Windows einen Bildschirmschoner starten möchte, kann man 3 Optionen auswählen: Test, Configure, Install. Diese Optionen geben dann dem Bildschirmschoneraufruf einen der folgenden Werte mit: /c, /s oder /p.Diese Werte wollen wir nun abfangen und dann die jeweils erwünschte Option starten. Dazu verwenden wir die folgende IF-Anweisung:
using System.Windows.Forms;
namespace ScreensaverHowTo
{
static class ScreenSaver
{
[STAThread]
static void Main(string[] args)
{
if (args.Length > 0)
{
if (args[0].ToLower().Trim().Substring(0,2) == "/c")
{
// Configurations-Dialog laden...
}
else if (args[0].ToLower() == "/s")
{
// Bildschirmschoner laden...
}
else if (args[0].ToLower() == "/p")
{
// Vorschau laden...
}
}
else
{
// Keine Argumente angegeben... Bildschirmschoner trotzdem starten...
// Dieser Fall tritt beispielsweise bei einem Doppelklick auf die .scr Datei auf.
}
}
}
}
Bildschirmschoner starten
Um den Bildschirmschoner zu starten rufen wir die folgende Methode auf:Das sollte dann in etwa so aussehen:
{
if (args.Length > 0)
{
if (args[0].ToLower().Trim().Substring(0,2) == "/c")
{
MessageBox.Show("Dieser Bildschirmschoner besitzt keine Optionen die sie sezten können.", "Screen Saver", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
}
System.Windows.Forms.Application.Run(new ScreenSaverForm());
}
Bildschirmschoner an Bildschirmgrösse anpassen
Da der Bildschirmschoner wie weiter oben schon beschrieben nur eine einfache Windows Form ohne Rand ist, müssen wir diese Form nun noch auf die Grösse des Bildschirmes bringen. Wir machen das hier gerade richtig, so dass der Bildschirmschoner nachher auf beliebig vielen Bildschirmen läuft. Also auch wenn Sie auf zwei Monitoren arbeiten. So haben wir dann einen richtigen Multiscreen Bildschirmschoner.Dazu müssen wir, wenn die Form geladen wird alle Koordinaten der Bildschirme zusammenzählen. Dies machen wir folgendermassen:
{
int minY = 0;
int maxY = 0;
int minX = 0;
int maxX = 0;
foreach (Screen screen in Screen.AllScreens)
{
// Die Grösse aller Bildschirme bestimmen
if (screen.Bounds.Left < minX) minX = screen.Bounds.Left; if (screen.Bounds.Right > maxX)
maxX = screen.Bounds.Right;
if (screen.Bounds.Top < minY) minY = screen.Bounds.Top; if (screen.Bounds.Bottom > maxY)
maxY = screen.Bounds.Bottom;
}
Location = new Point(minX, minY);
Height = maxY - minY;
Width = maxX - minX;
Cursor.Hide();
TopMost = true;
}
Ausserdem wird der Mauszeiger ausgeblendet da wir diesen ja nun nicht mer benötigen.
Bildschirmschoner beenden
Um den Bildschirmschoner wieder zu beenden fangen wir folgende Events ab: Das Drücken einer Taste, das Bewegen der Maus sowie das Drücken einer Maustaste.Dazu erstellt man folgende Events, die man mit der Form verknüpft:
Für die Tastatur fangen wir das drücken einer Taste ab. Wird irgendetwas an der Tastatur gemacht schliessen wir die geöffnete Form einfach, und beenden so den Bildschirmschoner.
{
Close();
}
{
if (!MouseXY.IsEmpty)
{
if (MouseXY != new Point(e.X, e.Y)) {
Close();
}
if (e.Clicks > 0)
{
Close();
}
}
MouseXY = new Point(e.X, e.Y);
}
In der Variablen MouseXY ist die Position des Mauszeigers zur Zeit des Funktionsaufrufes definiert. Verändert sich diese Position schliessen wir den Bildschirmschoner.
Bemerkung: Nicht vergessen die Variable MouseXY zu definieren.
Bildschirmschoner erstellen.
Ein Bildschirmschoner besteht eigentlich aus einer ganz normalen Exe Datei. Diese Datei muss nur noch umbenennt werden, so dass sie nachher .scr als Endung hat. Somit erkennt das Betriebssystem, dass es sich um einen Bildschirmschoner handelt.Fazit
Somit haben wir nun einen Bildschirmschoner erstellt, der den Bildschirm mit einer beliebigen Farbe überzieht. Es ist ebenfalls möglich anstatt einer Farbe ein Bild zu verwenden. Wenn sie wissen wollen, wie man einen transparenten Bildschirmschoner erstellt oder wie man den Computer sperren kann, dann lesen Sie den Artikel Transparenter Bildschirmschoner erstellenWollen sie noch etwas Abwechslung in den Bildschirmschoner bringen dann lesen Sie unter Geekpedia weiter.
Donnerstag, 5. August 2010
My first post
Ich freue mich sehr, dass sie den Weg hierher gefunden haben.
Das Ziel diese Bloggs ist es, Wissen welches ich erarbeitet habe weiterzugeben und anderen verfügbar zu machen. Hier werden Sie diverse Anleitungen finden, rund um Computer und Programmieren. Ich freue mich über jeden Kommentar und jede Anregung :-)