Skocz do zawartości
Utermiko

[Delphi]Symulowanie myszki PROBLEM

Rekomendowane odpowiedzi

Witam! Z góry mówię iż jestem początkujący w Delphi. Zrobiłem taki programik dla siebie, do którego wpisuje się współrzędne gdzie myszka ma kliknąć. Jak najbardziej klika ale chcę to wykorzystać w pewnej grze. I chodzi o to, że w grze symuluje kliknięcie tylko wtedy gdy uruchomię mój "twór" w Delphi przez Run(F9). Kiedy skompiluje go do *.exe (Project>Build Project1) symulowanie kliknięcia działa tylko np. na pulpicie a w grze już nie. To samo jest z symulowaniem liter klawiatury. Wydaje mi się, że to jest jakiś głupi bład, ale nie mogę go znaleźć, dlatego proszę o pomoc ;d. Uzywam Delphi 7 i mam windowsa viste.

Myszkę przesuwam funkcją SetCursorPos(x, y); <--To dziala

Symuluje wcisniecie myszki funkcja:

mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);

mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);

Klawiatura:

keybd_event(VkKeyScan(#32), 0, 0, 0);

keybd_event(VkKeyScan(#32), 0, KEYEVENTF_KEYUP, 0);

keybd_event(VkKeyScan(#32), 0, 0, 0);

keybd_event(VkKeyScan(#32), 0, KEYEVENTF_KEYUP, 0);

 

Przepraszam, że napisałem to trochę dziwnie ale nie wiem jak to mam wytłumaczyć ;d

 

 

Z góry dziękuję za pomoc ;)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Popróbuj z uchwytami.

Dam ci znaleziony w necie skrawek kodu, może ci coś rozjaśni.

 

var
 CurrentPos : TPoint;
 CurrentWindow : HWND;
begin
 CurrentWindow := GetForegroundWindow; // pobierz uchwyt aktywnego okna
 GetCursorPos(CurrentPos); // pobierz tymczasowa pozycje ekranu

 ShowWindow(Foreground, SW_SHOWNA);  // pokaż okno
 BringWindowToTop(Foreground); // dla pewnosci - wysun na wierzch
 SetForegroundwindow(Foreground);  // ustaw aktywne okno

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ok dzięki za pomoc, popróbuję z tymi uchwytami ;P Ale dalej mnie męczy pytanie dlaczego kiedy uruchamiam przez Delphi>Run to wszystko działa, a po kompilacji do *.exe nie ;/

@EDIT Teraz uaktywnia okno, ale za to myszka się nawet nie przesuwa ;/ Wydaje mi się, że Delphi nie dołącza jakiejś biblioteki albo to ,że Delphi 7 nie jest w pełni kompatybilne z Vistą, bo to co podałeś działa gdy uruchamiam poprzez Delphi>Run. Strasznie dziwny błąd ;/

@EDIT 2 Teraz zapisałem projekt do nowego folderu, chciałem skompilować i antywir(McAfee) krzyknął, że to wirus

BTW. Nie ma jakiegoś nowszego, darmowego IDE Delphi?(Nie Lazarus ;d) Słyszałem coś o Delphi XE2 Starter, ale na stronie embarcadero widze tylko Download Trial(30 days) Ew. Znajde gdzieś Turbo Delphi Explorer, bo kiedyś się rejestrowałem i mam klucz ale programu nie i odpale projekt tam(ew. przepisze ;d) ;/

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Skorzystaj z Lazarusa

lazarus.freepascal.org

To darmowy odpowiednik Delphi.

 

Jazz 2 RLZ :D

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Nie ma jakiegoś nowszego, darmowego IDE Delphi?(Nie Lazarus ;d)

^^

Pobieram właśnie TDE, może będzie działać ;P

Co do Lazarusa, jakoś nie lubię go, wolę Delphi, a pozatym odpycha mnie ogromny rozmiar exeka kompilowanego w nim.(Tak, wiem są UPX'y i można to skonfigurować)

@EDIT W Turbo Delphi tym bardziej nie działa więc będę musiał sobie odpuścić ;d

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×