Laden...

Tastatureingaben abfangen

Erstellt von can320 vor 18 Jahren Letzter Beitrag vor 15 Jahren 3.476 Views
C
can320 Themenstarter:in
151 Beiträge seit 2006
vor 18 Jahren
Tastatureingaben abfangen

Mein Programm soll minimiert sein und trotzdem auf eine bestimmt Tastaturkombination reagieren. Und nein, ich möchte mir keine 5 seiten auf Fachenglisch durchlesen, um so etwas simples zu realisieren.

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo can320,

ich wüsste ja eine Antwort, aber nein, ich möchte nicht auf eine Frage antworten, die auf diese Weise gestellt wurde.

herbivore

1.549 Beiträge seit 2004
vor 18 Jahren

Bordsuche nach: "hook" sollte dir weiterhelfen

ps du könntest wirklich etwas freundlicher fragen.

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

C
can320 Themenstarter:in
151 Beiträge seit 2006
vor 18 Jahren

ich suche schon seit über einer stunde nach hook (tastatureingaben abfangen etc.) hier im forum bei google und bei msdn und ich habe immer nur seitenlangen quellcode von fertigen keylogern etc. gefunden, bei denen ich höchstens jede 5 zeile verstehe. Genauso sieht es auch bei der Standardantwort http://www.codeproject.com/csharp/GlobalSystemHook.asp aus. Es nicht zu verstehen ist an sich ja kein Problem, nur bin ich bei den keylogern gezwungen den quellcode an meine bedürfnisse anzupassen und da ist nunmal schluss.

ah ja, das prog hatte ich bereits nach 5 minuten fertig aber eben ohne hooks...

das Prog soll auf die kombination "strg+4" reagieren...

1.549 Beiträge seit 2004
vor 18 Jahren

Enschuldigung wenn ich das mal so schreiben muss aber hast du dir das Projekt wirklich angesehen die Methoden zum aufrufen und nutzen des Hooks im Anwendungsbeispiel sind wirklich sehr einfach zum instalieren

			AddText("Adding mouse hook.");
			mouseHook.InstallHook();

			AddText("Adding keyboard hook.");
			keyboardHook.InstallHook();

			buttonInstall.Enabled = false;
			buttonUninstall.Enabled = true;

Wobei eigendlich nur

			keyboardHook.InstallHook();

für dich interesant wäre.

und was das nutzen angeht einfach mal die dll referenzieren und schon fertig

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

C
can320 Themenstarter:in
151 Beiträge seit 2006
vor 18 Jahren

ja, ich habe es mir genau angesehen und komme nicht weiter.

Es währe schön, wenn mir jemand den Teil, der für mich wichtig ist zusammen copy&pasten würde.

C
can320 Themenstarter:in
151 Beiträge seit 2006
vor 18 Jahren

schade, dass ich erst in nem anderen forum nachfragen musste aber was solls...

Hier ist ne einfache Lösung:

Unter Visual Studio 2005 muss man noch die folgende option deaktivieren.

Re: Global hooks in Visual studio 2005
[Click for User Profile] Gu1234 12:10 2 Jul '05

I found out how to solve the problem so it would work also inside the IDE

you just need to uncheck the check box in the project properties that says:
"Enable visual studio hosting process"

In the menu:

Project -> Project properties... -> Debug -> Enable the visual studio hosting process

GU

Schritt 1: Klasse "UserActivityHook" herunterladen und ins Projekt einbinden

Schritt 2: Objekt erstellen "UserActivityHook actHook;"

Schritt 3: Eventhandler:
actHook = new UserActivityHook();
actHook.KeyDown += new KeyEventHandler(Form1_KeyDown);

Schritt 4: Eventhandler füllen 😉

Nachtrag: acthook.stop(); und start sind ganz nützlich

S
1.047 Beiträge seit 2005
vor 18 Jahren

wie der code auszusehen hat, wurde ja schon beschrieben... würde auch zu dem code führen den du gepostet hast

das du ein problem hattest aus visual studio heraus das zu benutzen, hast du mit keinem wort hier erwähnt...

aber danke, so ist wenigstens eine lösung für spätere "suchende" parat 🙂

L
144 Beiträge seit 2005
vor 18 Jahren

Original von can320
Mein Programm soll minimiert sein und trotzdem auf eine bestimmt Tastaturkombination reagieren. Und nein, ich möchte mir keine 5 seiten auf Fachenglisch durchlesen, um so etwas simples zu realisieren.

Dennoch würde ich dir einen höflicheren Umgangston empfehlen 😉.

www.lyrix-soft.de

S
322 Beiträge seit 2007
vor 15 Jahren

Hallo Leute,

ich möchte diesen globalhook bei mir im Programm benutzen:
http://www.codeproject.com/KB/cs/globalhook.aspx

nun habe ich genau diesen Effekt:

Question:

I have a long delay when closing applications using hooks by clicking the x button in the titlebar. If I close the application via another event (button click) for example, that works fine.
Answer:

It's a know bug of Microsoft. It has to do with the Windows themes. If you disable the Windows themes, the problem goes away. Another choice is to have the hook code run in a secondary thread.

Muss ich dann praktisch den Konstruktor-Aufruf


actHook = new UserActivityHook(true, true); // crate an instance with global hooks

in einem anderen Thread machen? werden die Events dann dennoch im Hauptthread ausgelöst?

Danke
Steffen

S
322 Beiträge seit 2007
vor 15 Jahren

Hallo,

ich habe gerade eine Lösung bereits gefunden!

http://www.codeproject.com/KB/cs/globalhook.aspx?msg=1812003#xx1812003xx

damit werden die Hooks nur für den aktuellen Thread gesetzt, dann funktioniert alles wie gewohnt wieder... dass reicht mir soweit.