Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6502[/thread]

Key Logger in Perl: Tastatureingaben abfangen

Leser: 2


<< >> 10 Einträge, 1 Seite
eisbeer
 2004-08-16 15:38
#49310 #49310
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo zusammen,

ich habe eine ähnliche Frage schonmal vor einem Jahr gepostet,
finde den Thread aber nichtmehr. Also, meine Aufgabenstellung:

Ich brauche ein Modul, das mir unter Windows (2000/XP) die
Tastatureingaben, vorzugsweise Tastenkombinationen
(z.B. STRG+F12) registriert. Das ist wohl das kleinste Problem,
obwohl schon nicht allzu einfach. Das schwierigste ist folgendes:
Der Benutzer soll in jeglicher Anwendung (Browser, Exporer...)
einen String markieren, z.B. in einem IE-Fenster eine Telefon-
nummer. Dann drückt er STRG+F12, mein Perlprogramm liest
irgendwie diese markierte Nummer und kann die dann weiter-
verwenden.

Ich nehme an das geht nicht. Wenn es aber irgendwie andere
Möglichkeiten gibt, wie ich das lösen könnte, wäre ich euch
mehr wie dankbar!
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
eisbeer
 2004-08-16 15:42
#49311 #49311
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
ich dachte an WIN32::API oder Win32::GUI...
Wenn das mit denen nicht geht, müsste man unter Windows doch
irgendwo in der Registry Events bei Tastenkombinationen einstellen
können. Oder sonst mit einer Schnittstelle zwischen Perl und VB oder C[++]...

Danke schonmal im Vorraus!
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
renee
 2004-08-16 15:42
#49312 #49312
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Also zum einlesen der Tastatureingabe gibt's Term::ReadKey
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
coax
 2004-08-16 17:02
#49313 #49313
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
das sollte's tun...
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl
$|++;

use strict;
use warnings;

use Win32::Api;

my $GetAsyncKeyState = Win32::API->new('user32', 'GetAsyncKeyState', 'N', 'I');

while(1) {
   for my $keycode (8..255) {
       if($GetAsyncKeyState->Call($keycode) == -32767) {
          print chr($keycode);
       }
   }
}


Grusz coax.
,,Das perlt aber heute wieder...'' -- Dittsche
eisbeer
 2004-08-16 19:34
#49314 #49314
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Also das funktioniert ja schon mal, aber wie könnte ich das lösen, dass
ich das markierte irgendwie in meinem programm verwenden kann ?
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
coax
 2004-08-16 20:11
#49315 #49315
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Ich denke mal ueblicher ist es, dass der User den markierten Text in die Zwischenablage kopiert
(Ctrl + C oder per Kontextmenue, ...), dann drueckt er Ctrl + F12 und dein Programm greift dann
ueber die Zwischenablage auf den Text zu.
Beispielsweise ueberwacht mein Downloadmanager die Zwischenablage. Wenn ich eine URL
kopiere und deren Dateiendung ein bestimmter Typ ist poppt ein Downloaddialog auf.
Hier funktioniert der Aufruf automatisch, da der DLM ja weisz wo nach er zu suchen hat, bei dir
muesstest du bei deiner Tastenkombi bleiben.
,,Das perlt aber heute wieder...'' -- Dittsche
eisbeer
 2004-08-16 20:16
#49316 #49316
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Also keine möglichkeit? Der Plan mit der Zwischenablage hatte ich auch, mein Auftraggeber will es
aber nicht so. Kann isch nix machen.
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
SirLant
 2004-08-17 00:52
#49317 #49317
User since
2003-08-04
516 Artikel
BenutzerIn
[default_avatar]
An deiner Stelle würde ich mal in ner Winapi Newsgroup nachfragen wie man den markierten Text abfragen kann, das geht garantiert und Tastenkombinationen kannst du ebenfalls abfangen, sogar mit nem komfortablen Perl-Modul wie oben gezeigt und zur Not geht es immernoch mit nem Hook der alle Tasteneingaben abfängt.

Das größte Problem in der Aufgabe sehe ich darin, dass es wohl nicht nur mit C gelöst werden kann, wenn die Winapi die Funktionen nicht besitzt, oder das Win32::Api Modul diese nicht unterstützt (in der Doku steht ja, dass nur einfache Funktionsaufrufe möglich sind).
--Programming today is a race between Software Enginers striving to build bigger and better idiot-proof Programs,
and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
eisbeer
 2004-08-18 12:17
#49318 #49318
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Gut, schonmal vielen Dank. Aber noch eine Frage:
Du sagst "Winapi Newsgroup", hat mir jemand eine
"Adresse" o.ä. ? Wäre nett!
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...
Crian
 2004-08-18 14:34
#49319 #49319
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Zu dem Thread fällt mir dieses Snippet ein: http://www.duehl.de/christian/perl/perlmain.html#sniptlog
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 10 Einträge, 1 Seite



View all threads created 2004-08-16 15:38.