Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Delphi dvojklik

Dobrý den,
chci nasimulovat určitý počet kliknutí v delphi:

pocet:=2;
for i:=0 to pocet do
mouse_event(MOUSEEVENTF_LEFTDOWN,Pozice.x,Pozice.y ,dwData,dwExtraInfo);
mouse_event(MOUSEEVENTF_LEFTUP,Pozice.x,Pozice.y,d wData,dwExtraInfo);
end;

probehne vsak jenom jedno kliknuti. Myslim, ze je to zpusobeno malou casovou prodlevou. Potreboval bych mezi jednotliva kliknuti vlozit "pauzu". Sleep mi nepomuze, aplikaci zmrazi a vysledna prodleva je vlastne stejna.
Mate nekdo napad? (Neprogramuji dlouho)

Dekuji, Lojzan

Předmět Autor Datum
Skús to takto: mouse_event(MOUSEEVENTF_LEFTDOWN, Pozice.X, Pozice.Y, 0, 0); mouse_event(MOUSEEVENTF…
pme 28.08.2011 19:22
pme
Nejde to. Vždy se zvíší jenom o jednu. Miniaplikace 1qoidk.jpg var pocet,i:integer; Pozice:TPoint…
Lojzan 28.08.2011 20:41
Lojzan
Prepáč, ale ten kód čo si sem dal naozaj dúfaš, že bude fungovať? var pocet,i:integer; Pozice:TPoin…
pme 28.08.2011 20:46
pme
Ou, prázdniny byly opravdu dlouhé. Děkuji
Lojzan 28.08.2011 21:03
Lojzan
Takže Ti to funguje? Len pre zaujímavosť: čo tým chceš vlastne dosiahnúť? Výsledok by sa dal možno…
pme 28.08.2011 21:12
pme
Pracuje jak má. Potřeba udělat za sebou měnící se počet kliknutí v řádů tisíců... radši si to nechám… poslední
Lojzan 31.08.2011 16:40
Lojzan

Skús to takto:

mouse_event(MOUSEEVENTF_LEFTDOWN, Pozice.X, Pozice.Y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, Pozice.X, Pozice.Y, 0, 0);
GetDoubleClickTime;
mouse_event(MOUSEEVENTF_LEFTDOWN, Pozice.X, PoziceY, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, Pozice.X, Pozice.Y, 0, 0);

Nejde to. Vždy se zvíší jenom o jednu.

Miniaplikace

1qoidk.jpg

var
pocet,i:integer;
Pozice:TPoint;
procedure TForm1.Button1Click(Sender: TObject);
begin
pocet:=strtoint(edit1.text);
SetCursorPos(200,120);
for i:=0 to pocet do
mouse_event(MOUSEEVENTF_LEFTDOWN,Pozice.x,Pozice.y ,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,Pozice.x,Pozice.y,0 ,0);
GetDoubleClickTime;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
label1.Caption:=inttostr(strtoint(label1.caption)+ 1);
end;

Prepáč, ale ten kód čo si sem dal naozaj dúfaš, že bude fungovať?

var
  pocet,i:integer;
  Pozice:TPoint;
procedure TForm1.Button1Click(Sender: TObject);
begin
  pocet:=strtoint(edit1.text);
  SetCursorPos(200,120);
  for i:=0 to pocet do
  begin     // toto tu Ti nechýba???  """"""""""""""""""""""""""""""""""""""""""""""""""""""""
     mouse_event(MOUSEEVENTF_LEFTDOWN,Pozice.x,Pozice.y ,0,0);
     mouse_event(MOUSEEVENTF_LEFTUP,Pozice.x,Pozice.y,0 ,0);
     GetDoubleClickTime;
   end; /// samozrejme end !!!!!!
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  label1.Caption:=inttostr(strtoint(label1.caption)+ 1);
end;

Zpět do poradny Odpovědět na původní otázku Nahoru