fred0rik
Goto Top

Pfad wird über Skript nicht gefunden, im Explorer jedoch schon

Hallo!

Ich bin heute auf ein kurioses Problem gestoßen, nachdem ich bei einem Mitarbeiter ein Skript laufen lassen wollte. Das Skript (.vbs) ruft ein kleines Tool auf C:\Programme\AutoHotkey\AutoHotkeyU64.exe auf mit einem Parameter, doch dazu kommt es gar nicht, da ich die Rückmeldung bekomme, dass der Pfad in dem das Tool liegt, also C:\Programme\AutoHotkey\ nicht gefunden werden konnte...

Ich beginne somit mit den Routine-Tests:
- Existiert der Pfad überhaupt? C:\Programme\AutoHotkey\ im Explorer aufgerufen per Adresszeile - passt, auch die .exe ist dort vorhanden.
- Den selben Pfad aus der Zwischenablage in das "Ausführen"-Fenster (Windows+R) kopiert - "Konnte nicht gefunden werden. Überprüfen Sie den Pfad..." ????

Hat von euch jemand schon mal so ein Problem gehabt? Macht für mich gerade überhaupt keinen Sinn.

Nötige Infos:
Surface Pro 4 mit Windows 10 Pro, User ist kein lokaler Admin wobei ich auch nicht denke, dass es irgendein Berechtigungsproblem ist, da es bei Kollegen mit gleichen Rechten auch funktioniert.

Wisst ihr hier einen Tipp? Danke schonmal

Content-Key: 344093

Url: https://administrator.de/contentid/344093

Printed on: April 19, 2024 at 20:04 o'clock

Member: AnkhMorpork
AnkhMorpork Jul 21, 2017 at 06:10:29 (UTC)
Goto Top
Hallo,

ersetz mal Programme mit Program Files

Geht das?
Member: Chris-75
Chris-75 Jul 21, 2017 at 06:11:32 (UTC)
Goto Top
Moin,

C:\Programme ist ein Hardlink und nicht der physische Pfad. Probier mal in deinem Script "C:\Program Files\AutoHotkey\AutoHotkeyU64.exe" (mit Anführungszeichen) und ohne Parameter ob das geht.

Lg,
Chris
Member: AnkhMorpork
AnkhMorpork Jul 21, 2017 at 06:14:32 (UTC)
Goto Top
Nachtrag:

Bei 32-bit Program Files (x86)
Member: Fred0rik
Fred0rik Jul 21, 2017 at 07:14:24 (UTC)
Goto Top
Hm, das klingt auf alle Fälle nach einer guten Erklärung, auch wenn es nicht wirklich Sinn macht, dass es im Explorer geht aber im Skript nicht. Ich hatte absichtlich "Programme" genommen, da ich innerhalb des Skripts den Pfad nicht in Quotes schreiben kann:

Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c start C:\Programme\AutoHotkey\AutoHotkeyU64.exe C:\Programme\AutoHotkey\Skript.ahk & exit"
oShell.Run strArgs, 0, false


Würde ich den Pfad mit Program Files verwenden und diesen in Quotes setzen, würde das Skript nur "cmd /c start "C:\Program Files\... das Fett-gedruckte ausführen und wirft einen Fehler. Ich bräuchte hier quasi 2 Ebenen von Quotes, was gäbe es hier für eine Lösung?
Member: Snowman25
Solution Snowman25 Jul 21, 2017 at 07:14:58 (UTC)
Goto Top
Hallo @Fred0rik,

hat AHK nicht die typischen File-Bindings für .ahk-Dateien?
Falls es das hat, kannst du einfach direkt das AHK-Script aufrufen, ohne dieses explizit mit AutoHotkeyU64.exe zu starten.d

Noch besser: Du kompilierst das Skript in eine .exe (der Compiler ist im Setup enthalten). Dann kannst du auch ohne installiertes AHK das Skript ausführen.

Gruß,
@Snowman25
Member: Snowman25
Snowman25 Jul 21, 2017 at 07:18:03 (UTC)
Goto Top
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c start C:\Programme\AutoHotkey\AutoHotkeyU64.exe C:\Programme\AutoHotkey\Skript.ahk & exit"
oShell.Run strArgs, 0, false

Der Umweg über cmd ist nicht nötig.
Ohne den Umweg hast du auch kein Fenster, das du verstecken musst.

Generell solltest du Systemvariablen verwenden, anstatt feste Pfade:
%ProgramFiles% anstelle von C:\Programme (Hardlink, funktioniert nicht). Oder C:\ProgramFiles
Member: Fred0rik
Fred0rik Jul 21, 2017 at 07:47:05 (UTC)
Goto Top
Hallo @Snowman25,

vielen Dank für den tollen Tipp mit dem Compiler, das wusste ich gar nicht, soweit hatte ich mich mit dem AHK-Tool gar nicht beschäftigt :D

Habe es jetzt dann tatsächlich ohne das Skript gemacht, so ist es natürlich wesentlich einfacher!

Danke und viele Grüße!