Naja ich gib ja zu, das da auch ein bischen Faulheit von mir mit dabei ist.ts-soft hat geschrieben:Was willste da Testen? Defaultvariable ist nicht mehr long sondern integer, immer. Du brauchst da nichts testen und ich brauch mir nichts anpassen![]()

Naja ich gib ja zu, das da auch ein bischen Faulheit von mir mit dabei ist.ts-soft hat geschrieben:Was willste da Testen? Defaultvariable ist nicht mehr long sondern integer, immer. Du brauchst da nichts testen und ich brauch mir nichts anpassen![]()
Code: Alles auswählen
Procedure.i EnumWindowsCallBack(hwnd.i, Handle.i)
Protected Title$ = Space(1024), ProcessID.i, st.i = #True
GetWindowText_(hwnd, @Title$, Len(Title$))
GetWindowThreadProcessId_(hwnd, @ProcessID)
If Title$<>"" And IsWindowVisible_(hwnd)
If ProcessID = PeekI(Handle)
PokeI(Handle, hwnd)
st = #False
EndIf
EndIf
ProcedureReturn st
EndProcedure
Procedure.i Execute_WindowFile(Filename$, Parameter$, WorkDir$)
Protected st.i, Handle.i, Check.i
If FileSize(Filename$) > 0
st = RunProgram(Filename$, Parameter$, WorkDir$, #PB_Program_Open)
Else
ProcedureReturn #Null
EndIf
Handle = ProgramID(st) : Check = Handle
Repeat
Delay(10)
EnumWindows_(@EnumWindowsCallBack(), @Handle)
Until Handle <> Check And IsWindow_(Handle) <> #Null
CloseProgram(st)
ProcedureReturn Handle
EndProcedure
file$ = GetEnvironmentVariable("SystemRoot") + "\System32\calc.exe"
hwnd = Execute_WindowFile(file$, "", "")
Delay(500)
CloseWindow_(hwnd)
Delay(500)
OpenIcon_(hwnd)
Delay(1500)
SendMessage_(hwnd, #WM_CLOSE, 0, 0)
Debug "Window-Handle ( hWnd.l ) = " + Str(hwnd)
Das tat es vorher auchal90 hat geschrieben: und auf x64 sollte es (Hoffentlich) auch laufen.
Jeps. Muss ich mich wohl erstmal daran gewöhnen alles mit .i statt .l zu machen.ts-soft hat geschrieben:Das tat es vorher auch, aber darauf sollte man sich nicht verlassen.
Wurde soeben behoben. Danke für den Hinweis.Procedure.i haste noch nicht geändert. Ist abgesehen von Procedure.s der einzig
sinnvolle Vartyp für Procedure-Rückgaben! Procedure.b usw. sind irgendwie ballaballa![]()
Ein einfache Procedure ohne Typ hat dieselbe Wirkung.
Klar, stimmt schon. Werde mal versuchen meine stil zu ändern.Erklärung findeste von jemand anders in diesem Thread, sowie an vielen anderen Stellen hier im Board.
Wollte ich auch zuerst so machen. Aber dabei kann es zu problemen kommen wenn eine Anwendung beim Hochfahren (Autostart)ts-soft hat geschrieben:Wie wäre es, die Schleife zu entfernen und das Callback nur einmal aufzurufen, so wie es vorgesehen ist?