Hallo,
ich würde gerne folgendes Scripten...
Sollte ein Programm bereits ausgeführt sein , so sollte es den Status @SW_SHOW annehmen.
[autoit]#include <Misc.au3>
if _Singleton(@Scriptname,1) = 0 Then
Hier dann @SW_SHOW
Exit
EndIf
Hallo,
ich würde gerne folgendes Scripten...
Sollte ein Programm bereits ausgeführt sein , so sollte es den Status @SW_SHOW annehmen.
[autoit]#include <Misc.au3>
if _Singleton(@Scriptname,1) = 0 Then
Hier dann @SW_SHOW
Exit
EndIf
Und was ist nun deine Frage?
Welches Instanz des Programmes willst Du anzeigen? Doch vermutlich die erste? Aber nur die zweite Instanz kann feststellen, dass das Programm bereits läuft.
Das geht als nur mit WinActivate.
hm... okay water
wie wärs so etwa :
[autoit]#include <Misc.au3>
[/autoit][autoit][/autoit][autoit]if (_Singleton(@ScriptName, 1) = 0) Then
$aWinList = WinList("Hier der Fenstertitel")
Local $iZaehler
For $iZaehler=1 To UBound($aWinList)-1
if (WinGetProcess($aWinList[$iZaehler][1]) <> @AutoItPID) Then
WinSetState($aWinList[$iZaehler][1],"",@SW_SHOW)
WinActivate($aWinList[$iZaehler][1])
Exit
EndIf
Next
EndIf
Alcros , vielen dank das war genau das was ich gesucht hatte
bitte
dann geh doch beim ersten Post auf Bearbeiten und setz den Thread auf gelöst
Geht auch kürzer:
[autoit]
If ProcessExists("DeinProgramm.exe") <> 0 Then
WinSetState("Dein Fenstertitel", "", @SW_SHOW)
WinActivate("Dein Fenstertitel")
Exit
EndIf
Ich persönlich finde es auch schöner, aber das musst du entscheiden
Joriktos : Das wird nicht funktionieren, da auch bei der ersten Instanz des Scriptes ja der Prozess schon existiert.
Ah verdammt!
Blöder Denkfehler... Dann musst du
[autoit]
$array = ProcessList("DeinProgramm.exe")
If $array[0] > 1 Then
WinSetState ( "Dein Fenstertitel" , "" , @SW_SHOW )
WinActivate ( "Dein Fenstertitel" )
Exit
EndIf
verwenden, das müsste klappen
Bin aber grade mit dem Handy on (kann deshalb auch keine Tabulatoren einbauen...) und kann es nicht überprüfen...
Ich hab das so ähnlich in meinem aktuellen Script drin um zu checken, die wievielte Instanz gerade gestartet ist und hoffe, ich hab das noch richtig im Kopf. Du musst aber am besten nochmal die Syntax checken.
jepp, dann funktioniert es, allerdings kann es passieren, dass ein anderes Skript ein Fenster mit gleichem Namen hat
Naja, meine Fenster bekommen eigentlich immer einen sehr eindeutigen Fenstertitel geht das bei dir nicht?