wir/ich scheitern gerade an einer (vermeintlich) einfachen Aufgabe.
Das Programm everything.exe (ein Suchprogramm) soll auf Knopfdruck mit einem Parameter, der den aktuellen Verzeichnispfad enthält (offener, aktiver Ordner), ausgeführt werden.
Also z.B. C:\Program Files\Everything\Everything.exe -path "R:\This_Folder\shöüld be\searched\"
Momentan sieht das Skript folgendermaßen aus:
Code: Select all
#SingleInstance, Force
F7::
For w In ComObjCreate("Shell.Application").Windows
{
If (WinActive("ahk_class CabinetWClass")) ; -- v2
{
StringReplace, Folder, % w.document.folder.self.path, `%20, % A_Space, All
Run, % "C:\Program Files\Everything\Everything.exe -path " chr(34) Folder chr(34)
}
}
Return
Ich selbst habe nur sehr wenig Erfahrung mit AHK und der Syntax und das Skript in der Form nicht geschrieben, aber wenn ich das eher als Pseudo-code lese, sieht das doch sehr gut aus.
Der StringReplace ist eigentlich nur da, weil in einer alten Version des Skripts everything.exe mit parameter -url statt -path aufgerufen wurde (Leerzeichen durch %20 ersetzen).
Nehme ich den StringReplace aber in der neuen Version (mit -path) raus, dann öffnet er mir everything.exe mit dem Ordnerpfad des Desktops so oft, wie Ordner offen sind. Seltsam. Das Hauptproblem ist aber, dass er nicht den aktiven Ordner erkennt und immer alle aufmacht. Ob dann mit -url oder -path ist dann eher Kosmetik bzw. eine Sache von Everything.
Wo liegt der Fehler?
Viele Grüße und schon mal Danke für Hilfe,
Fraka
p.s.: Ich nutze momentan Windows 8.1 x64, wobei sich das in solchen Dingen kaum von Windows 10 unterscheiden sollte.