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.
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
Bordsuche nach: "hook" sollte dir weiterhelfen
ps du könntest wirklich etwas freundlicher fragen.
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
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...
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
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.
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 '05I 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
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 🙂
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
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
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.