PDA

Просмотр полной версии : Delphi sendmessage


Denever
05.11.2012, 18:44
procedure TForm1.Timer1Timer(Sender: TObject);
var Text:String;
i:Integer;
begin
Text:=Combobox1.Text+Memo1.Text;
if active_handle <> 0 then begin
SendMessage(active_handle,WM_KEYDOWN,VK_RETURN,0);
SendMessage(active_handle,WM_KEYUP,VK_RETURN,0);
for i:=1 to Length(Text) do begin
sendmessage(active_handle, WM_CHAR, Word(Text[i]), 0);
end;
SendMessage(active_handle,WM_KEYDOWN,VK_RETURN,0);
SendMessage(active_handle,WM_KEYUP,VK_RETURN,0);
end;
end;

Combobox1.Text:='!';
Memo1.Text:='Работает как улитка даже не знаю почему.';
http://www.youtube.com/watch?v=zHax1qqcoeg
Как можно ускорить отправку текста sendmessage в неактивное окно?

Zergatul
05.11.2012, 19:53
Во первых: при снятой галочке "снижать качество фона", игра сама тормозит обработку сообщений и обрабатывает их только каждую секунду.
Во вторых:
Sends the specified message to a window or windows. The SendMessage function calls the window procedure for the specified window and does not return until the window procedure has processed the message.
http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms644950(v=vs.85).aspx

Добавлено через 36 секунд
Используй PostMessage

Denever
05.11.2012, 20:19
Во первых: при снятой галочке "снижать качество фона", игра сама тормозит обработку сообщений и обрабатывает их только каждую секунду.
Во вторых:

http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms644950(v=vs.85).aspx

Добавлено через 36 секунд
Используй PostMessage
Спасибо тебе.
PostMessage очень быстро работает.

Yegor
08.11.2012, 13:41
Denever, она не быстро работает. Она просто не дожидается обработки сообщения приложением которому послано сообщение.