Gotowce::Klikacz - praca w tle?

Odpowiedz Nowy wątek
2010-04-12 15:22

Rejestracja: 11 lat temu

Ostatnio: 7 miesięcy temu

0

Witam

Mam szybkie pytanie dotyczące gotowca "Klikacza" dostępnego pod linkiem: Klikacz.
Jest tam mowa o tym, że program działa w tle i za sprawą kombinacji klawiszy Ctrl+ENTER pobiera aktualną pozycję kursora. Czy orientuje się ktoś czy to działanie w tle napisane w Delphi, jest takim prawdziwym działaniem w tle tzn. gram w grę i klikając tą kombinację klawiszy mogę pobrać pozycję kursora + uruchomić timer.

I jeszcze jedno pytanie. Czy podpięcie klawisza F1 pod funkcję startu timera w czasie działania programu w tle jest możliwe? W opisie programu jest napisane:

procedure TMainForm.FormCreate(Sender: TObject);
begin
{ Ta funkcja rejestruje skrót: Ctrl + Enter dla naszej aplikacji }
  RegisterHotKey(Handle, $0001, MOD_CONTROL,  VK_Return);
end;

czyli jeśli dobrze zrozumiałem, przycisk będzie zarezerwowany dla naszego programu i nie będzie niespodzianek w postaci uruchamiania pomocy czy czegoś w tym rodzaju?

Pozostało 580 znaków

2010-04-12 15:58
Moderator

Rejestracja: 11 lat temu

Ostatnio: 3 miesiące temu

Lokalizacja: Szczecin

0

Co do porawidłowego działania w tle to sprawdź czy klika jak należy i okno aktywne
nie traci Focusa i tak dalej, a co do HotKeya to jak ustawisz na VK_F1 to będzie on
oczywiście działąć w całym systemie, ale na 100% prawidłowo - tylko w aplikacjach
okienkowych, w grach działających na pelnym ekranie już może nie działać. Jedyne
rozwiązanie to sprobować coś wykombinować z AutoHotKey'em, w nim ustawiony
hotkey zadziała nawet w grach. Nie zadziała tylko w maszynie wirtualnej, która jest
emulowana pod VMWare Workstation lub tego typu programach. Zaś co do obslugi
AutoHotKey'a, to zajrzyj do dokumentacji, a po więcej porad - na forum supportu,
tylko nie wiem czy da się w AutoHotKeyu napisać taki klikacz jak w gotowcach, ale
chyba są w AutoHotKey podobne funkcje oraz możłiwość cyklicznego powtarzania
kodu jak Timer. Chociaż teraz - o ile dobrze widzę, w źródle klikacza używana jest
funkcja SetForegroundWindow, a więc na chwile ustawiany jest Focus na okno, w
ktorym chcesz klikać, a póxniej przywracane na poprzednie. Także jeżeli będziesz
miał na pierwszym planie uruchomioną grę i zadziała zarejestrowany HotKey, który
uruchamia Timer z klikaniem, to i tak okno gry straci focus i nie ma pewności czy
ów focus odzyska w prawidłowy sposób. Najlepiej skompiluj i potestuj dokładnie.


Pozostało 580 znaków

2010-04-12 17:05

Rejestracja: 11 lat temu

Ostatnio: 7 miesięcy temu

0

Dzięki serdeczne @olesio.

A co do sprawdzania itp. to ja pytałem po to by tego nie robić. Strasznie mało czasu ostatnio mam i szkoda mi go marnować, na pisanie programu, który nie spełni moich wymagań, dlatego wcześniej chciałem się upewnić, że moje wysiłki nie pójdą na marne i zrobię wszystko tak jak sobie zaplanowałem.
Widać jednak, że nie ma innej rady jak zaryzykować :)

Jeszcze raz dzięki @olesio za zainteresowanie.

Pozdrawiam

Pozostało 580 znaków

Odpowiedz

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