Program symulujący klikanie podczas trzymania wciśniętego przycisku myszy

0

Witam, mam taki problem:

Potrzebuje napisac aplikacje ktora: Gdy trzymany jest przycisk myszy system wykonuje operacje jakby mysz bardzo sybko klikala a nie przysk byl trzymany. Czy moglby mi ktos pomoc?

0

Uprzedzę innych: Ile płacisz?

0

Kurde, myslalem ze taki program nie jest ciezko napisac, widocznie sie mylilem bo liczylem na darmowa pomoc, dzieki

0

Za darmo to mogę dać Tobie ten kod ktory wrzuciłem pod poniższy adres.
Napisany kiedyś, bo ktoś rownie leniwy i niesamodzielny jak Ty pytał, jak
można napisać bota do klikania. W programie masz przykład globalnego
Hooka na myszkę oraz klikania w różne punkty ekranu. Z kodem mozesz
zrobić co chcesz - tylko miło by było jakbyś wspomnial później o autorze
oryginału. Dostosuj sobie kod jak chcesz. Podejrzewam, że Hook można
dopasować żeby wykrywał trzymanie myszki a nie samo kliknięcie, ale z
tym to sobie już radź sam. Nie ma wszystkiego za darmo i jeżeli nadal
nie ogarniasz tego to złóż ofertę podając wynagrodzenie za wykonanie
całego takiego programu za Ciebie w dziale Offtopic - Praca tego forum.
A trudność napisania jest zależna od tego czy komuś się chce troszkę
samodzielnie pokombinowac i poszukać w google, a nie od razu pisać
na forum "zróbcie za mnie, najlepiej za darmo, bo tak sobie chcę i tyle".
http://www.speedyshare.com/files/24163354/clicker_bot.rar

0

Olesio, założenie hook-a na mysz OK, potem symulacja kliku z użyciem mouse_event, tylko pojawia się problem: jak program ma odróżnić czy to user wcisnął klawisz myszy, czy to zrobiła funkcja mouse_event, która przecież tez wygeneruje zdarzenie np. WM_LBUTTONDOWN? Chyba, że uruchamiać i zatrzymywać klikanie z wciśniętym Ctrl i sprawdzać jego stan przed obsługą zdarzenia :-D

0

Dzieki wszystkim, chodzi o to zeby klikalo tam gdzie jest kursor jak trzymam mysz ;p

0

Dzieki wszystkim, chodzi o to zeby klikalo tam gdzie jest kursor jak trzymam mysz

Po co ci taki program? Palce ci obcięło przy flexie? Dramat.

0

marogo: No chyba że tak, a co do odróżnienia to nie bardzo wiem co masz na myśli.
Bo ja rozumiem, że pytającemu wszystko jedno byle by program reagowal na kliknięcie
tak jakby robil to fizycznie użytkownik. I nie wiem czy da się w ogóle odróżnic to takie
prawdziwe kliknięcie myszką od takiego zasymulowanego przez funkcję Mouse_Event.

EDIT: już pojawily się nowe odpowiedzi, bo nie odświeżyłem strony, a odpowiedź na
pytanie po co taki program, imo z pewnościa posluży do oszukiwania w jakiś grach.

0

A po co tu hooki?

0

Żeby stwierdzić kiedy kliknięto myszką w systemie. Chociaż mój klikający bot
używa hooka tylko po to aby móc pobrać współrzędne na ekranie, w ktore ma
klikać. A co do samego symulowania klikania to wiadomo hooka nie potrzeba.

0

Do tego żeby sprawdzic stan klawisza myszy (wcisniety czy nie) nie trzeba hooka. Tak samo hooka nie trzeba aby pobrać wspolrzedne kursora na ekranie. Ludzie co z wami? :|

0

To nie ja zacząłem ten wątek. A i pewnie jest jakaś funkcja API ktora tak
jak dla GetKeyState pobierze w wątku czy Timerze kliknięcie myszką, ale
ja do tego celu użyłem Hooka, wszystko działa także nie kombinowałem
nic więcej. Jak znasz lepsze rozwiązanie to się nim podziel, bo może się
to do czegoś przyda autorowi wątku jak samodzielnie będzie coś kodził.

0

myślę że musi być hook bo jak napiszesz zwykłą aplikacje to system otrzyma dwa polecenia. Od myszy i od programu.
Nie orientuje się w komunikatach myszy, ale załóżmy że są trzyb down - wciśnięcia, pressed - wcisniety up - zwolniony przycisk

to na hooku moze byc kod ktory na komunikat pressed przekazuje do systemu up, a na down przekazuje down, na up up.

Wtedy zależy od proca jak szybko będzie klikac :)

A, zapomnial bym. kodu nie wstawię bo to wszystko w google jest. Jeżeli nie wiesz co to google to podpowiem.
obok pola z adresem forum powinienes miec po prawej jeszcze jedno. Wpisz tam cos na ten temat. jak nie google sie odpali to inna wyszukiwarka

pzdr

0

Hook + ew. dodatkowe informacje podczepione do eventa myszy żeby odróżnić zewnętrzne (od usera/generowane przez inne programy) od swoich...

0

Ja mialem namyśli by ciągłe wciśnięcie klawisza przez usera pociąć na mniejsze. i wtedy nie potrzeba rozróżniać.

0

Wciśnięcie składa się z akcji wciśnięcia i akcji puszczenia klawisza. Pomiędzy zewnętrznymi akcjami trzeba symulować te 'pocięte'... więc idź tnij.

0

gdzie ja tego sthila zostawiłem. hm.....

Aaa, tu jest. Idę.

Do zobaczenia !

0

Panowie, za dużo teoretyzowania, a za mało konkretów.

Klikanie można by zrobić np. tak:

Kładziemy na formę timera, nazywamy go np. TimerKlikacz, ustawiamy:
TimerKlikanie.Enabled:=false;
TimerKlikanie.Interval:=100; //częstość automatycznego klikania

Dodatkowo można położyć na formie CheckBox-a dla testu klikania.


 Const
  wh_mouse_ll = 14;

Var
  mHook: Cardinal;
  Rozpocznij: Boolean;

//===================== funkcja callback dla hooka myszy =====================

Function LowLevelMouseHookProc(nCode, wParam, lParam : integer) : integer; stdcall;
 Begin
   If Rozpocznij and (wParam=WM_LBUTTONDOWN) then //przechwycenie wciśnięcia lewego klawisza myszki
   Begin
     Rozpocznij:=false;
     windows.Beep(1000, 200); //dźwięk informujący, że następne wciśnięcie klawisza myszy rozpocznie automtyczne klikanie
     Form1.TimerKlikanie.Enabled:=true; //uruchomienie automatycznego klikania
   End;
   Result:=CallNextHookEx(mHook, nCode, wParam, lParam);
 End;

//============================== ustawienia początkowe ======================

procedure TForm1.FormCreate(Sender: TObject);
begin
 Rozpocznij:=true;
 mHook:=SetWindowsHookEx(wh_mouse_ll, @LowLevelMouseHookProc, hInstance, 0); //włączenie Hooka myszki
end;


//===================== wykonuje automatyczne klikanie do momentu wciścięcia Ctrl ============

procedure TForm1.TimerklikanieTimer(Sender: TObject);
Var
 Punkt:TPoint;
begin
 TimerKlikanie.Enabled:=false;
 GetCursorPos(Punkt);
 mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, Punkt.X, Punkt.Y, 0, 0); //symulowany klik myszy w punkcie X,Y ekranu
 mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, Punkt.X, Punkt.Y, 0, 0);
 If GetKeyState(VK_CONTROL)<0 then Begin
                                      Application.MessageBox('Koniec klikania!',' Klikacz',mb_OK+mb_IconInformation+MB_TOPMOST); //zatrzymanie automatycznego klikania
                                      Rozpocznij:=true; //kolejne 'ręczne' kliknięcie myszką rozpocznie ponownie automatyczne klikanie
                                   End
                              else TimerKlikanie.Enabled:=true; //wywołanie następnego automatycznego kliknięcia
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  UnhookWindowsHookEx(mHook); //wyłączenie hooka myszki
end;

Wciśnięcie lewego klawisza myszki rozpocznie automatyczne klikanie, które zatrzymujemy wciskając klawisz Ctrl.

Pzdr.
Marogo

</delphi>
0

Dzieki !!!!! zaraz sprawdze

0

Jak to się stało że moderatorzy na to nie wpadli?:
Autoklikanie

0

Za jakość kodu nie odpowiadam bo to były początki mojej przygody z programowaniem w Delphi (i potrzebowałem tego do klikania w OGAME) jednak gotowiec w załączniku (wraz z EXE i źródłami)

1 użytkowników online, w tym zalogowanych: 0, gości: 1