Hallo an euch,
ich muss ein Verzeichnis auslesen, dieses beinhaltet viele Ordner. Diese Ordnernamen muss ich weiterverarbeiten.
Hintergrund der Geschichte:
Ich möchte im Firefox Profilmanager viele Profile anlegen. Die Profilnamen sind bereits in Form von Ordnernamen vorliegend.
Leider hakt es noch an mehreren Stellen im Script.
1. Es war leider nicht möglich den Firefox Profilmanager die Buttons und Eingabebox anzuwählen. Ich musste mir damit behelfen mit AutoIT Mausklicks an der richtigen Bildschirmposition durchzuführen. Das funktioniert schon mal.
2. Der Befehl HotKeySet wollte nicht so wirklich, ich behelfe mir vorerst indem ich nach Ablauf des Script eine 9 sekündige Pause eingefrügt habe. Wenn ich das Script im Editor mitteld F5 ausführe, funktioniert zum stoppen auch die Strg + Pause Tastenkombination. Das ist erst einmal inordnung.
3. Die DIR Liste wird erstellt und nach Alphabet sortiert. Der Erste Eintrag im Profilmanager wird auch tadellos erstellt. Anschließend wird wieder mit der Maus navigiert und geklickt, jedoch wird nicht der nächste Ordnername eingefügt.
Zuvor hatte die Variable zum hochzählen noch nicht in Verwendung, das war ein wirres einfügen "aller Ordnernamen" hintereinander. Nun, seit dem ich das Hochzählen über die Variable implementiert habe, geht es nach dem ersten Eintrag nicht mehr weiter.
Gut, angefangen wird mit dem ersten Profil, bevor die DIR Liste erstellt wird, aber das bereitet hoffentlich kein Problem. Etwas wirr warr ist mein Ablauf.
Google hat mir zwar viel weitergeholfen, aber Ihr seid immer noch die besseren.
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>
#include <File.au3>
#include <Array.au3>
; Verzeichnis mit den Firefox-Portable-Ordnern
Global $firefoxPortableDir = "R:\"
Global $startIndex = 1 ; Startindex für die For-Schleife
; Hotkey definieren, funktioniert noch nicht
HotKeySet("!e", "_ende")
; Firefox-Profilmanager öffnen
Run("C:\Program Files\Mozilla Firefox\firefox -P")
; Warten, bis der Profilmanager geladen ist
Sleep(5000)
While 1
; Profil erstellen
ControlClick("Firefox - Benutzerprofil wählen", "", "[CLASS:Button; INSTANCE:1]")
MouseClick("left", 856, 455)
Sleep(1000)
MouseClick("left", 1089, 722)
Sleep(1000)
; DIR-Liste erstellen und alphabetisch sortieren
Global $dirList = _FileListToArray($firefoxPortableDir, "*", $FLTA_FOLDERS)
_ArraySort($dirList, 1) ; 1 für aufsteigende Sortierung, 0 für absteigende Sortierung
; Alle Einträge kopieren, beginnend beim Startindex
For $i = $startIndex To UBound($dirList) - 1
ClipPut($dirList[$i])
Send("^v")
MouseClick("left", 1089, 722)
$startIndex = $i + 1 ; Aktualisieren des Startindex für den nächsten Durchlauf
Next
; Pause, bevor die Schleife erneut beginnt
Sleep(9000)
WEnd
; Abschlussmeldung wenn alle Profile erstellt wurden
MsgBox($MB_ICONINFORMATION, "Fertig", "Profile wurden erfolgreich erstellt!")
; Funktion zum Beenden des Skripts, scheint nicht zu funktionieren
Func _ende()
Exit
EndFunc
Alles anzeigen
Lg Hans