TEST - ScreenHop

0

napisalem maly programik ktory przechwytuje z klawiatury przycisk PrintSceen
a nastepnie zapisuje obraz na dysku w podanym katalogu jako bmp, png lub jpg (z mozliwoscia stopnia kompresji)

lecz po wlaczeniu po jakims czasie (dosc dlugim bo u mnie nawet ok 1 - 2 godziny) przestaje on dzialac (nie przechwytuje klawisza)
programu nie testowalem na innych komputerach wiec nie wiem gdzie jest problem (czy moj pc czy sam program jest felerny)
zwracam sie do was (do chetnych) zatem o przetestowanie mojego programu
i o przeslanie mi informacji czy program dobrze sie zachowuje czy sa z nim jakies problemy

z gory dziekuje

Pobierz ScreenHop

edit 1 : a moze to powinno byc w dziale delphi - sam nie wiem
edit 2 : dodam jeszcze ze dla testow dodalem do timera sprawdzanie czy hook jest zalozony czy 'cos' go wylaczylo - caly czas aktywny

0

Niestety, u mnie w ogóle żadne naciskanie prtscrn nie powoduje, by się screen w odpowiednim katalogu pojawił, niezależnie od ustawień progamu, dźwięku nie wydaje, nic. Jakby hooka nie miał.

Nie wiem czy to zależy od tego, że mam laptopa i żeby uzyskać PrtScrn muszę nacisnąć Fn+Insert, to dla systemu jest zwyczajne naciśnięcie klawisza o ile wiem.
Windows Vista Business N SP1.

0
Ktos napisał(a)

Niestety, u mnie w ogóle żadne naciskanie prtscrn nie powoduje, by się screen w odpowiednim katalogu pojawił, niezależnie od ustawień progamu, dźwięku nie wydaje, nic. Jakby hooka nie miał.

udostepnilem wlasnie wersje w ktorej jesli hook zostanie zdjety pokaze sie komunikat - tak dla testow

to dziwne ze u ciebie w ogole nie dziala bo u mnie po odpaleniu smiga az milo - ale tylko do czasu

edit : moze to wina u ciebie tych przyciskow w laptopie - sam juz wymiekam przy tym

0

oto moj kod na zakladanie hooka na klawisz printscreen:

var MainHook: HHOOK;
function KeyboardHook(Code: Integer; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
var Buffer: TEventMsg;
    Key: Byte;
begin

 Buffer := PEventMsg(lParam)^;
 Key := Buffer.ParamL;

 if ((Buffer.Message = WM_KEYUP) and (Key = 44)) then JakasTamProcedura;

 Result := 0;

end;

onCreate

MainHook := SetWindowsHookEx(WH_JOURNALRECORD, KeyboardHook, hInstance, 0);

onCloseQuery

 UnhookWindowsHookEx(MainHook);
0

Komunikat "Hook zdjęty" pojawił się już po uruchomieniu i pojawia w kółko. Więc to jest wina hooka ;-)

0
Ktos napisał(a)

Komunikat "Hook zdjęty" pojawił się już po uruchomieniu i pojawia w kółko. Więc to jest wina hooka ;-)
dzieki Ktos

tylko teraz jest pytanie dlaczego?
dlaczego skoro u mnie nie ma w ogole komunikatu ze zdjety a u ciebie na starcie
i co moglo by byc powodem zdjecia hooka bo wydaje mi sie ze hook jest zakladany dobrze

moze ktos sprawdzi to na swoim win 2k/xp
moze to na viscie kwestia systemu ze ma jakies zabezpieczenia na hooki

0

Odpaliłem sobie ten programik - fajna sprawa ;)
Jak na razie działa na Vista Business SP1 i Win XP SP2, zobaczy się, co będzie później.
Też mam laptopa, ale z oddzielnym PrintScreenem, więc może te problemy u Ktosia (tak to się odmienia?) są przez jego sprzęt.

//edit:
Po jakimś czasie faktycznie przestaje działać.
Do tego uruchomiony na Win Server 2008 na maszynie wirtualnej także ciągle wyświetla okienko z komunikatem o zdjęciu hooka.

0
somekind napisał(a)

Po jakimś czasie faktycznie przestaje działać.
Do tego uruchomiony na Win Server 2008 na maszynie wirtualnej także ciągle wyświetla okienko z komunikatem o zdjęciu hooka.

w przypadku visty i win server 2008 to moze byc sprawa zabezpieczen/uprawnien
te systemy moze nie pozwalaja tak zachaczyc klawiatury ze wzgledow bezpieczenstwa

ale nie rozumie dlaczego na tym 2k/xp dziala super a po jakims czasie przestaje przechwytywac klawiature

0

moze po prostu sie .. wiesza? :)

0

kiedyś robiłem podobny programik i problem był po naciśnięciu F1 i paru innych klawiszy (w tym chyba przycisk Windows)... hook się wtedy wieszał, ale jeszcze ostatni raz sie odpalał więc w tym ostatnim razie go zdejmowałem i zakładałem od nowa i było ok ;P

0
fsdgsdg napisał(a)

kiedyś robiłem podobny programik i problem był po naciśnięciu F1 i paru innych klawiszy (w tym chyba przycisk Windows)... hook się wtedy wieszał, ale jeszcze ostatni raz sie odpalał więc w tym ostatnim razie go zdejmowałem i zakładałem od nowa i było ok ;P

to moze byc jakas szansa - zdejmowanie i zakladanie na nowo hooka
juz udostepnilem dla chetnych zaktualizowana wersje do testow

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