Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Keyboard Hook

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.04.2003, 09:17 Uhr
~Daniel666
Gast


Hallo !

Ist es möglich mittels eines KeyboardHooks, ausgelagert in einer DLL, Tasten, wie z.B. Strg/Alt/Entf, Alt/Tab, WindowsTaste, abzufangen damit Windows davon nix mitbekommt ?
Wenn ja wie müsste diese Funktion aussehen ?

Gruss Daniel666
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.04.2003, 18:56 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo,
schau dir einfach das Beispiel unter Downloads an, dann müsste dir alles klar werden, wenn nicht, frag einfach ...
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.04.2003, 15:25 Uhr
~Daniel666
Gast


Hi !

Das Beispiel habe ich mir schon angeschaut.

Daraus geht aber nicht hervor, wie ich Tastatureingaben beeinflussen kann, so daß Windows gar nix davon mitbekommt.
Ich habe schon probiert die Paramter auf 0 zu setzen. Hilft aber nix.
Auch wenn die Funktion 0 zurückliefert bringt das nichts.

Kann es sein, daß Windows, oder irgendein anderes Programm, die Eingabe vor der DLL bekommt ?

Gruss Daniel666
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.04.2003, 18:24 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


nein, außer es sind noch mehrere Keyboard Hooks vorhanden (z.b von Tastaturtreibern)...

Beinflussen kannst du es in der KHookDll an folgender Stelle:


C++:
// Funktion aus Beispiel

HOOKDLL_API LRESULT CALLBACK HookProc(int ncode,WPARAM wparam,LPARAM lparam)
{
    if(ncode>=0)
    {
        if((lparam & 0x80000000) == 0x00000000)
        {
            PostMessage(hwnd,WM_KEYDOWN,wparam,lparam);
        }
    }
             [b]// Hier findet die Weiterleitung statt
    return ( CallNextHookEx(hook,ncode,wparam,lparam) );[/b]
}


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
28.04.2003, 13:09 Uhr
~Daniel666
Gast


Hi !

Das funktioniert ja soweit ganz gut.
Aber leider nicht mit den Tasten (Alt/Tab, WindowsTaste und Strg/Alt/Entf).
Und um diese ging es mir ja.

Gibt es denn keine Möglichkeit diese Tasten abzufangen ?

Gruss Daniel666
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.05.2003, 15:58 Uhr
~erpelqueen
Gast


Hi, ich will ja keinen neuen Thread für dieses Thema aufmachen.
Ich hab da mein Programm, (das mit Konsole, keine APIs mit(included))
Ich will jetzt den Keybordhook mit ein bauen. Schaff ich dass, ohne das mit diesem langen Apiquatsch? Sodass ich einfach nur n paar Bibliotheken include, und das geht???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.05.2003, 22:04 Uhr
Christian
C/C++ Master
(Operator)


Nö.

Tu dir das nicht an. Das ist absolut kein Einsteigerthema.
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
10.05.2003, 14:37 Uhr
Spacelord
Hoffnungsloser Fall


Welches OS benutzt du denn?
Bei NT basierten Systemen ist so ziemlich das erste was die Gina.dll macht zu überprüfen ob irgendwer diese Tastenkombination hooken möchte(und das ist schon zu einem Zeitpunkt bevor deine Ring 3 Anwendung auch nur mal darüber nachdenken darf zu starten ).
Diese Tastenkombination ist aus gutem Grund fest ins Betriebssystem eingebunden.
Unter Win98/ME gibt es eine sehr unschöne Möglichkeit diese Tastenkombi zu unterdrücken (aber nicht abzufangen).
Die MSDN rät aber ausdrücklich davon ab an diesen Flags rumzupfuschen.
Hatte das mal in ner Konsolenanwendung ausprobiert und da führt es zu unkontrollierbarem Verhalten wenn die Tastenkombi tatsächlich gedrückt wird.
Sprich:die Anwendung wartet auf eine Eingabe->der User drückt STRG-ALT-ENTF(oder auch ALT-TAB)->kein Taskmanager aber das Programm reagiert nicht mehr auf Eingaben->einmal minimieren und maximieren und es reagiert wieder aber wenn man bei so einem einfachen Vorgang schon Probleme bekommt ist nicht abzuschätzen was in nem "richtigen" Windowsprogramm für Probleme auftauchen.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
10.07.2006, 11:20 Uhr
der Leitman



Hallo ihr!

Ich habe dasselbe Problem (nur halt 3 Jahre später *gg*)
Wollte fragen ob ich mit Visual C++ in Microsoft Visual Studio 8.0 mit .NET Framework 2.0 Windows Messages unter Windows XP mittels Hook abfangen und verarbeiten kann?

Erstelle ein Programm, dass wichtige Informationen anzeigt und auf keinen Fall geschlossen oder mittels ALT TAB, Windows Taste + E, usw minimiert werden darf.

Nun möchte ich die genannten Tastenkombinationen abfangen und vor Windows verarbeiten,
brauche ich dazu Hooks oder gibt es mittlerweile einen einfacheren Weg um das zu lösen?

Vielen Dank im Vorraus
--
Das Leben ist ein Scheiß-Spiel...
aber die Grafik ist saugeil!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: