Ich möchte euch heute mein erstes Tutorial vorstellen. Das Thema lautet: Wie erstelle ich für mein AHK Programm einen einfachen Passwort Schutz?
Ich werde euch in diesem Tutorial zwei verschiedene Arten zeigen. Für die erste wird ein FTP Server benötigt. Allerdings lässt sich hier auch das Passwort anpassen. Die zweite Möglichkeit benötigt kein FTP Server, ist sicherer, kann aber nur durch das Script verändert werden.
Möglichkeit 1:
Zu aller erst erstellt ihr eine .txt Datei mit eurem Passwort. Nun ladet ihr diese auf euren FTP Server hoch, merkt/kopiert euch den Link und geht zum nächsten Punkt
Nun folgt am Anfang des Scripts folgender Codeschnipsel:
Mit dieser Funktion downloadet ihr eine Datei, in unserem Falle die Textdatei mit dem Passwort. Das letzte Parameter gibt den Speicherort der Datei an. Sollte, wie bei uns, kein Pfad genannt sein, wird die Datei im selben Ordner wie das ausgeführte AHK Script gespeichert.
Zur besseren Sicherheit kann die gedownloadete Datei in einen anderen Ordner, als das Script gepackt werden. Z.B.: temporäre Dateien, Dokumente ...
Anschließend folgen diese beiden Befehle. Der erste liest den kompletten Inhalt unserer .txt Datei aus und speichert ihn in der Variabel (hier: pw). Auch hier ist wichtig den kompletten Pfad zur Datei anzugeben.
Die zweite Zeile löscht unsere .txt Datei komplett wieder zum Rechner. (Auch hier den kompletten Pfad angeben!)
Nun folgt der eigentliche Gui:
Das wichtigste hier ist das Edit Feld. Hier kann nun das Passwort eingegeben werden. Das "password" sorgt dafür, das jedes Zeichen durch einen Stern ( * ) ersetzt wird.
Nun folgt die Überprüfung des eingegebenen Passworts. Das passiert wenn wir den Button "Weiter" mit dem Label "passweiter" drücken:
Alles anzeigen
Nun wird der vorhandene Text in dem Edit Feld in die Variabel mit "Submit" geschrieben. Anschließend der Gui zerstört und die Überprüfung beginnt. Sollte das Passwort (pw) mit dem eingetippten Wert (pw3) übereinstimmen kommt eine MsgBox und man wird zum Hauptfenster weiter geleitet.
Sollte pw und pw3 nicht übereinstimmen kommt ebenfalls eine MsgBox und man landet wieder am Anfang der Eingabe. Sollte der Benutzer nun das Fenster schließen wird das Programm beendet.
Das war nun die Passwort Funktion über einen FTP Server.
Möglichkeit 2:
Diese Funktion ist sicherlich sicherer und einfacher. Allerdings sollte hier ein unberechtigter Anwender das Passwort bekommen und keine Zwangsupdate Funktion vorhanden sein, nicht mehr änderbar. Der unbefugte Benutzer hätte nun unendlich oft einen Zugang!
Am Anfang des Scripts definieren wir unser Passwort:
Nachfolgend kommt der bereits bekannte Gui zum Einsatz:
Wie bereits beim ersten Beispiel wird auch hier wieder das Passwort mit dem gleichen System überprüft:
Alles anzeigen
Wie ihr sicherlich bemerkt hat ist einzig und allein die "Art" der Variablen Bestimmung anders geworden. Hier gibt es noch viele weitere Möglichkeiten (Auslesen aus einer .ini usw.)
Auch ist mir bekannt, das es noch deutlich besseren Schutz vor einer unberechtigten Benutzung gibt, diese sollte aber für den Anfang reichen. Natürlich kann diese Funktion noch erweitert werden (z.B.: solange sich das Passwort in der .txt Datei nicht ändert, wird die Passwort Eingabe übersprungen und und und).
Ich werde euch in diesem Tutorial zwei verschiedene Arten zeigen. Für die erste wird ein FTP Server benötigt. Allerdings lässt sich hier auch das Passwort anpassen. Die zweite Möglichkeit benötigt kein FTP Server, ist sicherer, kann aber nur durch das Script verändert werden.
Möglichkeit 1:
Zu aller erst erstellt ihr eine .txt Datei mit eurem Passwort. Nun ladet ihr diese auf euren FTP Server hoch, merkt/kopiert euch den Link und geht zum nächsten Punkt

Nun folgt am Anfang des Scripts folgender Codeschnipsel:
Mit dieser Funktion downloadet ihr eine Datei, in unserem Falle die Textdatei mit dem Passwort. Das letzte Parameter gibt den Speicherort der Datei an. Sollte, wie bei uns, kein Pfad genannt sein, wird die Datei im selben Ordner wie das ausgeführte AHK Script gespeichert.
Zur besseren Sicherheit kann die gedownloadete Datei in einen anderen Ordner, als das Script gepackt werden. Z.B.: temporäre Dateien, Dokumente ...
Anschließend folgen diese beiden Befehle. Der erste liest den kompletten Inhalt unserer .txt Datei aus und speichert ihn in der Variabel (hier: pw). Auch hier ist wichtig den kompletten Pfad zur Datei anzugeben.
Die zweite Zeile löscht unsere .txt Datei komplett wieder zum Rechner. (Auch hier den kompletten Pfad angeben!)
Nun folgt der eigentliche Gui:
Quellcode
- passgui:
- Gui, 1:Font, S12 Cblack, Verdena
- Gui, 1:Add, Text, x12 y12 w370 h40 , Bitte gebe hier das Passwort für den Keybinder ein:
- Gui, 1:Add, Edit, x12 y52 w370 h20 password vpw3,
- Gui, 1:Add, Text, x12 y82 w370 h40 , Infos zum Passwort (einstellbar)
- Gui, 1:Add, Button, x12 y132 w370 h30 gpassweiter, Weiter
- Gui, 1:Show, x279 y229 h192 w399, Keybinder - Passwort
- return
Das wichtigste hier ist das Edit Feld. Hier kann nun das Passwort eingegeben werden. Das "password" sorgt dafür, das jedes Zeichen durch einen Stern ( * ) ersetzt wird.
Nun folgt die Überprüfung des eingegebenen Passworts. Das passiert wenn wir den Button "Weiter" mit dem Label "passweiter" drücken:
Quellcode
- passweiter:
- Gui, 1:submit
- Gui, 1:destroy
- if (pw == pw3)
- {
- MsgBox,,Passwort, Passwort ist korrekt. Du wirst nun weitergeleitet ...
- goto, Hauptfenster ; <- euer Hauptfenster
- return
- }
- else {
- sleep 500
- MsgBox,,Passwort, Das Passwort ist falsch. Bitte noch einmal probieren!
- goto, passgui ; <- wieder zurück zur passwort eingabe
- return
- }
- 1GuiClose:
- ExitApp
- return
Nun wird der vorhandene Text in dem Edit Feld in die Variabel mit "Submit" geschrieben. Anschließend der Gui zerstört und die Überprüfung beginnt. Sollte das Passwort (pw) mit dem eingetippten Wert (pw3) übereinstimmen kommt eine MsgBox und man wird zum Hauptfenster weiter geleitet.
Sollte pw und pw3 nicht übereinstimmen kommt ebenfalls eine MsgBox und man landet wieder am Anfang der Eingabe. Sollte der Benutzer nun das Fenster schließen wird das Programm beendet.
Das war nun die Passwort Funktion über einen FTP Server.
Möglichkeit 2:
Diese Funktion ist sicherlich sicherer und einfacher. Allerdings sollte hier ein unberechtigter Anwender das Passwort bekommen und keine Zwangsupdate Funktion vorhanden sein, nicht mehr änderbar. Der unbefugte Benutzer hätte nun unendlich oft einen Zugang!
Am Anfang des Scripts definieren wir unser Passwort:
Nachfolgend kommt der bereits bekannte Gui zum Einsatz:
Quellcode
- passgui:
- Gui, 1:Font, S12 Cblack, Verdena
- Gui, 1:Add, Text, x12 y12 w370 h40 , Bitte gebe hier das Passwort für den Keybinder ein:
- Gui, 1:Add, Edit, x12 y52 w370 h20 password vpw3,
- Gui, 1:Add, Text, x12 y82 w370 h40 , Infos zum Passwort (einstellbar)
- Gui, 1:Add, Button, x12 y132 w370 h30 gpassweiter, Weiter
- Gui, 1:Show, x279 y229 h192 w399, Keybinder - Passwort
- return
Wie bereits beim ersten Beispiel wird auch hier wieder das Passwort mit dem gleichen System überprüft:
Quellcode
- passweiter:
- Gui, 1:submit
- Gui, 1:destroy
- if (pw == pw3)
- {
- MsgBox,,Passwort, Passwort ist korrekt. Du wirst nun weitergeleitet ...
- goto, Hauptfenster ; <- euer Hauptfenster
- return
- }
- else {
- sleep 500
- MsgBox,,Passwort, Das Passwort ist falsch. Bitte noch einmal probieren!
- goto, passgui ; <- wieder zurück zur passwort eingabe
- return
- }
- 1GuiClose:
- ExitApp
- return
Wie ihr sicherlich bemerkt hat ist einzig und allein die "Art" der Variablen Bestimmung anders geworden. Hier gibt es noch viele weitere Möglichkeiten (Auslesen aus einer .ini usw.)
Auch ist mir bekannt, das es noch deutlich besseren Schutz vor einer unberechtigten Benutzung gibt, diese sollte aber für den Anfang reichen. Natürlich kann diese Funktion noch erweitert werden (z.B.: solange sich das Passwort in der .txt Datei nicht ändert, wird die Passwort Eingabe übersprungen und und und).