Ĺadny brzuch
Witam mam nieco dziwne pytanie i nie wiem dokladnie jak je zadac. Chodzi mi o to zeby program dzialal w tle i z tym nie mam problemu.. Ale teraz glowny problem jak zrobic zeby np. po nacisnieciu przycisku "C" nastapilo to samo co prawy klik->Kopiuj ... po "V" nastapilo to samo co prawy klik->Wklej itd. i to w kazdym programie (notatnik,Opera)... Prosze o pomoc
Pozdrawiam Sheldar
globalny hook + handle komponentu spod kursora ???
Czyli właściwie to, co następuje ormalnie po tych klawiszach jak są wciskane razem z klawiszem Ctrl?
Chodnik:
tak.. tylko nie wiem czy da sie to jakos zrobic i wlasnie pytam o pomoc..
Od jakiegoś czasu mniej lub bardziej zajmuję się podobnym rozwiązaniem (ale nie zupełnie takim samym) i myslę, że twój problem też się tak da rozwiązać.
Po pierwsze, to odradzam orzystanie z hooków na klawiaturę, ponieważ spowalniają system, przechwytują wszystkie klawisze, a tu chodzi o kilka wybranych.
Ja zamiast tego użyłem tzw. HotKeys. Mój program rejestruje hotkey dla kombinacji ctrl+V. Jeżeli takie zdarzenie zachodzi, to komunikat jest przechwytywany przez program. Obsługa tego wygląda tak, że wykonywana jest pewna funkcja programu, wyrejestrowywany jest hotkey i do systemu jest generowane nowe zdarzenie wciśnięcia klawiszy. Tym razem już nie są przechwytywane przez program, ale trafiają do docelowego okna. Po tym program ponownie rejestruje hotkeya i czeka na nowe zdarzenie.
W twoim przypadku mogłoby to wyglądać tak, że program rejestruje Hotkey 'C', a do systemu wysyła zdarzenie ctrl+C, co w efekcie daje wklejenie. Nie jestem tylko pewny, czy można zarejestrować literkę jako hotkey, bo nie sprawdzałem, ale raczej powinno to działać.
Druga sprawa, to może napisz po co to ma być, bo może się okazać, że potrzebujesz zupełnie czego innego?
Chodzi o to ze zrobilem sobie przycisk (ala klawiaturowy) ktory podpinam pod COM... po naciscnieciu zmienna "Klik" ma wartosc 1 a po spuszczeniu przycisku wartosc 0.... tylko zamiast zmieniania wartosci zalezy mi teraz na fukcjach Copy, Paste, Cut i to poza programem... samemu nie udalo mi sie tego osiagnac i wlasnie sie pytam...
No, to zawiłości hotkey i hook już ci odpadają. Skoro twój program może zmieniać wartość zmiennej, to może też wywołać funkcje. A można wywołać na przykład tą funkcję i kazać jej wywołać ctrl+v, albo ctrl+c.
Użytkownik chodnik edytował ten post 27 lipiec 2006, 19:00
hmm... a jak sie do tego zabrac... dopiero niedawno zaczalem sie bawic Delphi
No właśnie, jak to zrobić? Wiem jak to zrobić w C++ i od biedy zrobiłbym to w javie, gdybym był zmuszony użyć WinAPI, ale w Delphi nigdy nic nie napisałem jeszcze :blink:
Jak w tym języku wywołać funkcję z WinAPI?
4p rlz
Warto również poprzeglądać forum 4p.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Pozdrawiam Sheldar
globalny hook + handle komponentu spod kursora ???
Czyli właściwie to, co następuje ormalnie po tych klawiszach jak są wciskane razem z klawiszem Ctrl?
Chodnik:
tak.. tylko nie wiem czy da sie to jakos zrobic i wlasnie pytam o pomoc..
Od jakiegoś czasu mniej lub bardziej zajmuję się podobnym rozwiązaniem (ale nie zupełnie takim samym) i myslę, że twój problem też się tak da rozwiązać.
Po pierwsze, to odradzam orzystanie z hooków na klawiaturę, ponieważ spowalniają system, przechwytują wszystkie klawisze, a tu chodzi o kilka wybranych.
Ja zamiast tego użyłem tzw. HotKeys. Mój program rejestruje hotkey dla kombinacji ctrl+V. Jeżeli takie zdarzenie zachodzi, to komunikat jest przechwytywany przez program. Obsługa tego wygląda tak, że wykonywana jest pewna funkcja programu, wyrejestrowywany jest hotkey i do systemu jest generowane nowe zdarzenie wciśnięcia klawiszy. Tym razem już nie są przechwytywane przez program, ale trafiają do docelowego okna. Po tym program ponownie rejestruje hotkeya i czeka na nowe zdarzenie.
W twoim przypadku mogłoby to wyglądać tak, że program rejestruje Hotkey 'C', a do systemu wysyła zdarzenie ctrl+C, co w efekcie daje wklejenie. Nie jestem tylko pewny, czy można zarejestrować literkę jako hotkey, bo nie sprawdzałem, ale raczej powinno to działać.
Druga sprawa, to może napisz po co to ma być, bo może się okazać, że potrzebujesz zupełnie czego innego?
Chodzi o to ze zrobilem sobie przycisk (ala klawiaturowy) ktory podpinam pod COM... po naciscnieciu zmienna "Klik" ma wartosc 1 a po spuszczeniu przycisku wartosc 0.... tylko zamiast zmieniania wartosci zalezy mi teraz na fukcjach Copy, Paste, Cut i to poza programem... samemu nie udalo mi sie tego osiagnac i wlasnie sie pytam...
No, to zawiłości hotkey i hook już ci odpadają. Skoro twój program może zmieniać wartość zmiennej, to może też wywołać funkcje. A można wywołać na przykład tą funkcję i kazać jej wywołać ctrl+v, albo ctrl+c.
Użytkownik chodnik edytował ten post 27 lipiec 2006, 19:00
hmm... a jak sie do tego zabrac... dopiero niedawno zaczalem sie bawic Delphi
No właśnie, jak to zrobić? Wiem jak to zrobić w C++ i od biedy zrobiłbym to w javie, gdybym był zmuszony użyć WinAPI, ale w Delphi nigdy nic nie napisałem jeszcze :blink:
Jak w tym języku wywołać funkcję z WinAPI?
4p rlz
Warto również poprzeglądać forum 4p.