Hallo davidwittesz,
zum obigen Code, der auf Luckies Vorschlag basiert, solltest du w noch vorbesetzen. In der while Schleife fragst du ab, ob w <> 0 ist, aber w hat ja zu diesem Zeitpunkt noch keinen definierten Wert. Setze einfach vor der while Schleife w := 1;
Willst du es mit Threads lösen, dann musst es soheißen:
Delphi-Quellcode:
procedure TMyThread.Execute;
var
i : Integer;
w : hWnd;
begin
while Not Terminated do
begin
// Externes Programm oeffnen
ShellExecute(0, PChar('open'), 'C:\Programme\Internet Explorer\IEXPLORE.EXE','', '', SW_SHOWMINIMIZED);
for i := 0 to 10 do
begin
Label1.Caption := IntToStr(i);
Label1.Repaint;
// Pause (in msec)
Sleep(500);
end;
// Externes Programm schliessen
w := FindWindow(NIL,'about:blank - Microsoft Internet Explorer');
if W<>0 then
PostMessage(W, wm_close, 1, 1);
end;
end;