geklickt wird nachdem der SpeedButton disabled hat
wobei deine Frage, nach dem was dazwischen passiert, mich zu etwas brachte
Wenn der Button geklickt wird, dann wird dieser gedisabled und danach wird diese Code ausgeführt:
Delphi-Quellcode:
function WinExecAndWait(FileName: string; Visibility: Integer): DWORD;
procedure WaitFor(processHandle: THandle);
var
Msg: TMsg;
ret: DWORD;
begin
repeat
ret := MsgWaitForMultipleObjects(1, processHandle, false, INFINITE,
QS_PAINT or QS_SENDMESSAGE);
If ret = WAIT_FAILED then
exit;
If ret = (WAIT_OBJECT_0 + 1) then
begin
while PeekMessage(Msg, 0, WM_PAINT, WM_PAINT, PM_REMOVE) do
DispatchMessage(Msg);
end;
until ret = WAIT_OBJECT_0;
end;
var
zAppName : array[0..512] of Char;
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
StrPCopy(zAppName, FileName);
FillChar(StartupInfo, SizeOf(StartupInfo), #0);
StartupInfo.cb := SizeOf(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
If not CreateProcess(nil, zAppName, nil, nil, false, CREATE_NEW_CONSOLE or
NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then
Result := DWORD(-1)
else
begin
Waitfor(ProcessInfo.hProcess);
GetExitCodeProcess(ProcessInfo.hProcess, Result);
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread);
end;
end;
Es wird eine Exe ausgeführt und gewartet, bis diese wieder geschlossen ist
[edit]
auch ohne dem Code passiert das...
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<