sendmessage i mysz

kriqs
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam

Lecimy. Chce uzyskac klikniecie myszka, ale tak zeby nie wywolywac aplikacji. Tak zeby wszystko dzialo sie w tle.
niebardzo moge poradzic sobie z wysylaniem komunikatow. szukalem na msdn i na google ale nie bardzo chce to wszystko dzialac.

Tutaj log z Spy++: http://www.paste.to/ODQzOQ==

Prosze o pomoc.

dodane:
takie cos mi sie o zrobic ale niestety nie dziala :(

Kopiuj
 
var  p:TPoint;
    bHandle:HWND;
    i:integer;
begin
  p.x:=445;
  p.y := 126;
  Sleep(4000);
  //SendMessage(arhwnd[id].handle, WM_NCHITTEST, 0, MakeLparam(p.x,p.y));
  if ( sendMessage(arhwnd[id].handle, WM_SetCursor, arhwnd[id].handle,  MakeLparam(HTCLIENT,WM_MOUSEMOVE) ) = 1 ) then
  PostMessage(arhwnd[id].handle, WM_MouseMove, 0, MakeLparam(p.x,p.y));
  Sleep( 300 );
  //SendMessage(arhwnd[id].handle, WM_NCHITTEST, 0, MakeLparam(p.x,p.y));
  if ( sendMessage(arhwnd[id].handle, WM_SetCursor, arhwnd[id].handle,  MakeLparam(HTCLIENT,WM_LBUTTONDOWN) ) = 1 ) then
  PostMessage(arhwnd[id].handle, WM_LBUTTONDOWN, MK_LBUTTON,  MakeLparam(p.x,p.y));
    Sleep( 300 );
  //SendMessage(arhwnd[id].handle, WM_NCHITTEST, 0, MakeLparam(p.x,p.y));
  if ( sendMessage(arhwnd[id].handle, WM_SetCursor, arhwnd[id].handle,  MakeLparam(HTCLIENT,WM_LBUTTONUP) ) = 1 ) then
  PostMessage(arhwnd[id].handle, WM_LBUTTONUP, 0,  MakeLparam(p.x,p.y));
end;
Kopiuj
 

<00001> 00260864 S WM_SETCURSOR hwnd:00260864 nHittest:HTCLIENT wMouseMsg:WM_MOUSEMOVE
<00002> 00260864 R WM_SETCURSOR fHaltProcessing:True
<00003> 00260864 P WM_MOUSEMOVE fwKeys:0000 xPos:445 yPos:126
<00004> 00260864 S WM_SETCURSOR hwnd:00260864 nHittest:HTCLIENT wMouseMsg:WM_LBUTTONDOWN
<00005> 00260864 R WM_SETCURSOR fHaltProcessing:True
<00006> 00260864 P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:445 yPos:126
<00007> 00260864 S WM_SETCURSOR hwnd:00260864 nHittest:HTCLIENT wMouseMsg:WM_LBUTTONUP
<00008> 00260864 R WM_SETCURSOR fHaltProcessing:True
<00009> 00260864 P WM_LBUTTONUP fwKeys:0000 xPos:445 yPos:126

po odkomentowaniu WM_NCHITTEST nic nie daje. Czy za malo cos wysylam ?

kriqs
  • Rejestracja: dni
  • Ostatnio: dni
0

ktoś coś wie ? albo przynajmniej naprowadzić mnie może ? :D ponad 70 osób oglądnęło i nic ?

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gorlice
0

Bo tak naprawdę to chyba nikt nie rozumie o co Ci chodzi. Chcesz zasymulować kliknięcie np. na button w oknie którego nie widać?

kriqs
  • Rejestracja: dni
  • Ostatnio: dni
0

tak dokładnie chce zrobić. Chcę kliknąć w punkt w innym programie. ale tak zeby go nie wywolywac wiec mouse_event odpada.

  • Rejestracja: dni
  • Ostatnio: dni
0

Spróbuj pobrać uchwyt tego przycisku i wtedy SendMessage(BN_CLICKED, ..) albo SendMessage(WM_COMMAND, ..) z odpowiednimi parametrami.
http://msdn.microsoft.com/en-us/library/ms647591(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/ms647591(v=vs.85).aspx
Nie wiem czy o to chodzi, ale może się przyda.

kriqs
  • Rejestracja: dni
  • Ostatnio: dni
0

tylko ze to nie jest przycisk. Jest to gra i nie ma przycisków.

Opi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1034
0

No nareszcie napisałeś, że chodzi o grę... to zmienia postać rzeczy.

Jeśli chcesz napisać kolejny TibiaBot to ...dobrze trafiłeś ;]

kriqs
  • Rejestracja: dni
  • Ostatnio: dni
0

nie nie, nie do Tibii. Ale no bot'a bot'a bardziej po to aby nauczyć się czegoś niż grać. Nie mam zamiaru go nigdzie udostępniać tak dla siebie go robię.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.