Всем привет. Возникла такая проблемка. Как реализовать задержку между кодом программы без применения sleep().
Код:
procedure dvizhok();
delay(10000);
keybd_event(1,29,0,0);
delay(100);
setcursorpos(812,560);
delay(100);
mouse_event(mouseeventf_move,1,0,0,0);
delay(100);
end;
Delay беру от сюда.
Код:
procedure Delay (Milliseconds: Integer);
var
Tick: DWord;
Event: THandle;
begin
Event := CreateEvent(nil, False, False, nil);
try
Tick := GetTickCount + DWord(Milliseconds);
while (Milliseconds > 0) and
(MsgWaitForMultipleObjects(1, Event, False, Milliseconds, QS_ALLINPUT) <> WAIT_TIMEOUT) do
begin
Application.ProcessMessages;
Milliseconds := Tick - GetTickcount;
if Application.Terminated then Exit;
end;
finally
CloseHandle(Event);
end;end;
Вроде все правильно ниче не подвисает, но когда вызывается процедура Delay доходит до Application.ProcessMessages; обновлется окно и процедура dvizhok выполняется по новой не дойдя до конца.