Hallo zusammen,
ich neu hier aber nicht im AHK Bereich. Ich programmiere schon ein paar Jahre mit AHK jedoch stoße ich gerade auf ein Problem, wo ich in Moment nicht weiter komme.
Ich habe ein Script, welches ein paar Dinge ausführt und am Ende ein anderes Script starten soll. Mittels RUN Befehl. Das tut es auch.
Jetzt ist es so, das andere Script startet völlig normal wenn ich es alleine im Explorer starte.
Aber wenn es über mein 1. Script gestartet wird, dann erschein immer ei Load Icon Fehler vom Tray Menü.
Was ich nicht verstehe weil, wenn ich es ohne das zusätzliche Script mit dem RUN Befehl starte, dann kommt dieser Fehler nicht. Nur über das 2. Script mittels des RUN Befehls.
Hat jemand so etwas schon einmal gehabt?
Ich hoffe ich konnte es irgendwie verständlich Beschreiben.
LG
Picard
Script startet mit Fehler aber warum? Topic is solved
Moderator: jNizM
-
- Posts: 6
- Joined: 13 Nov 2017, 04:18
Re: Script startet mit Fehler aber warum?
Fehler lässt sich ohne bereitstellung der skripte, bzw aufgrund weiterer fehlender basisinformationen (OS, AHK version, etc) schwerer ermitteln.
Spräche etwas dagegen das 2. script einzubetten/es zu #Include..n ?
Spräche etwas dagegen das 2. script einzubetten/es zu #Include..n ?
Re: Script startet mit Fehler aber warum?
Moin,
die Anweisung Tray, Icon, Dateiname, ... sucht die Icondatei im aktuellen Arbeitsverzeichnis, wenn kein Pfad angegeben wird. So kannst Du entweder den vollständigen Pfad angeben (Hinweis: A_ScriptDir) oder das Arbeitsverzeichnis im Skript mit SetWorkingDir oder auch im 2. Parameter des Run Kommandos setzen.
die Anweisung Tray, Icon, Dateiname, ... sucht die Icondatei im aktuellen Arbeitsverzeichnis, wenn kein Pfad angegeben wird. So kannst Du entweder den vollständigen Pfad angeben (Hinweis: A_ScriptDir) oder das Arbeitsverzeichnis im Skript mit SetWorkingDir oder auch im 2. Parameter des Run Kommandos setzen.
-
- Posts: 6
- Joined: 13 Nov 2017, 04:18
Re: Script startet mit Fehler aber warum?
Hallo,
vielen Dank für eure Antworten. Ich poste mal mein Script. Es ist ein Update Script welches nix anderes macht als eine Datei von A nach B zu kopieren und danach die Datei startet.
Das Script funktioniert super. Es sind dazwischen ein paar MSG BOxes drin, einfach zur Überprüfung.
Am Ende starte ich das Script mit dem RUN Befehl. Dann folgt der Fehler "Can't load icon....." von dem anderen Script.
Starte ich das andere Script ganz normal, funktionert es und das icon wird geladen.
Klar könnte ich das Menü mit "A_ScriptDir" anpassen aber eigentlich holt er sich ja immer aus dem Programmverzeichnis das icon wenn kein anderen angegeben ist.
Meine Frage: GIbt es Probleme wenn ich ein Script aus einem anderen Script starte? Mittels RUN? Cache etc.?
Vielen Dank
LG
Picard
vielen Dank für eure Antworten. Ich poste mal mein Script. Es ist ein Update Script welches nix anderes macht als eine Datei von A nach B zu kopieren und danach die Datei startet.
Code: Select all
#NoEnv
Suche_Pfad(exe)
{
for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process where name ='" exe "'")
pfad_komplett := process.ExecutablePath
SplitPath, pfad_komplett,, Verz
return verz
}
client_exe := "Client.exe"
pfad_update := "C:\Test-Datei"
;#### Pürfen ob Client überhaupt gestartet ist
Process, Exist, %client_exe%
If (ErrorLevel != 0)
{
client_verzeichnis := Suche_Pfad( client_exe ) ;--> Pfad holen, wo Client gespeichert wurde.
;#### Nachfragen, ob das Update gestartet werden soll
msgbox, 4, Update Client ,Es ist ein Update für den Client verfügbar.`nSoll das Update gestartet werden?`n %client_verzeichnis%
IfMsgBox No
{
ExitApp
Return
}
;#### JA, dann wird der Updateprozess gestartet
IfMsgBox YES
{
msgbox, 262208, ,Es wurde JA geklickt %client_exe%
Process, Close, %client_exe% ;--> Client schließen
Process, WaitClose, %client_exe%, 60 ;--> Warten bis Prozess geschlossen wurde
If (ErrorLevel = 0) ;--> Prüfen ob Client wirklich geschlossen wurde!
{
msgbox, 262208, ,Client wurde geschlossen
;#### UPDATE STARTEN
Dir = %pfad_update%
CopyDir = %client_verzeichnis%
SetWorkingDir, %Dir%
msgbox, 4, Test, %CopyDir%
Gui, Add, Text, xm w360 vProgressFile, Update wird gestartet...`nBitte warten
Gui, Add, Progress, xm w300 h20 vProgressBar -Smooth
Gui, Add, Button, yp-1 hp+2 xp+305 w60 gButtonCancel, Abbrechen
Gui, Add, Text, xm w360 vProgressText
Gui, Show,, Update wird gestartet...
Loop, %Dir%\*
FileCount++
Loop, %Dir%\*
{
If CancelCopy
{
CancelCopy := false
Break
}
GuiControl,, ProgressFile, Dateien kopieren `n%A_LoopFileName%...
FileCopy, %A_LoopFileName%, %CopyDir%\%A_LoopFileName%, 1
Percent := Floor( A_Index / FileCount * 100 )
GuiControl,, ProgressBar, %Percent%
GuiControl,, ProgressText, %Percent%`% Komplett
if (Percent = 100)
{
GuiEscape:
GuiClose:
sleep, 5000
Gui, Destroy
msgbox, 262208, ,Client Update Erfolgreich durchgeführt.`n%client_verzeichnis%\%client_exe%
sleep, 1000
pfad_client = %client_verzeichnis%\%client_exe%
Run, %pfad_client%
ExitApp
Return
}
}
Return
ButtonCancel:
ExitApp
Return
}
else
{
Sleep, 500
msgbox, 16, ,FEHLER-FEHLER-FEHLER-FEHLER-FEHLER-FEHLER`n`nClient konnte nicht beendet werden.`nDas Update wurde nicht durchgeführt!`n`n!
ExitApp
Return
}
}
}
else
{
msgbox, 262208, ,Client ist schon zu
ExitApp
Return
}
Am Ende starte ich das Script mit dem RUN Befehl. Dann folgt der Fehler "Can't load icon....." von dem anderen Script.
Starte ich das andere Script ganz normal, funktionert es und das icon wird geladen.
Klar könnte ich das Menü mit "A_ScriptDir" anpassen aber eigentlich holt er sich ja immer aus dem Programmverzeichnis das icon wenn kein anderen angegeben ist.
Meine Frage: GIbt es Probleme wenn ich ein Script aus einem anderen Script starte? Mittels RUN? Cache etc.?
Vielen Dank
LG
Picard
-
- Posts: 6
- Joined: 13 Nov 2017, 04:18
Re: Script startet mit Fehler aber warum? Topic is solved
Hallo,
ich habe den Fehler gefunden: Ich muss vor dem RUN Befehl nochmal "SetWorkingDir %A_ScriptDir%" einfügen.
Deshalb klappte es nicht. Danke für den Hinweis. Das hat mich auf die richtige Spur gelockt.
Danke für die Gedankenstütze....
ich habe den Fehler gefunden: Ich muss vor dem RUN Befehl nochmal "SetWorkingDir %A_ScriptDir%" einfügen.
Deshalb klappte es nicht. Danke für den Hinweis. Das hat mich auf die richtige Spur gelockt.
Danke für die Gedankenstütze....
Who is online
Users browsing this forum: No registered users and 62 guests