So protokollieren Sie Schlüsselereignisse von nicht standardmäßigen Schlüsseln unter Windows 7

9

Ich habe ein zweifaches Problem, und ich kenne keinen der beiden Zweige.

Hintergrund: Ich habe einen neuen Laptop von MSI gekauft. Als eine Funktion, die ich noch nie zuvor gesehen habe, hat das CD-Laufwerk keinen mechanischen Auswurftaste auf dem Laufwerk montiert. Stattdessen ist eine digitale Auswurftaste Teil der "Smart-Bar" über den Funktionstasten. Leider ist die Software, die der Smartbar zugrunde liegt, grauenhaft. Selbst im Passiv-Modus belegt es die Bildschirm-Grundfläche und belegt Platz auf der Task-Leiste. * Ich habe diese Software deinstalliert.

Projekt: Ich möchte ein Programm schreiben, das beim Start läuft und unauffällig im Hintergrund liegt. Die einzige Funktion des Programms besteht darin, die Auswurftaste das CD-Laufwerk auswerfen zu lassen.

Schritt eins: Ich möchte herausfinden, was passiert, wenn ich diesen Knopf drücke. Ich vermute, dass ich nichts programmieren muss, sondern ein Dienstprogramm benutzen kann - einer meiner Kollegen erwähnte einen "Event Logger" aber Google bietet nichts von Nutzen.

Schritt zwei: Ich möchte das Programm schreiben, was bedeutet, dass ich entweder mit WIN32 oder möglicherweise mit dem .net-Framework interagieren muss, um dieselbe Funktion aufzurufen, wenn ich mit der rechten Maustaste auf das CD-Laufwerk unter "Mein Computer" klicke und klicken Sie auf "Auswerfen".

Fragen: Erste Frage: Kennen Sie ein Dienstprogramm, das mir sagt, was passiert, wenn der Knopf gedrückt wird?

Zweite Frage: Weißt du, welche Funktion ich bei diesem Ereignis aufrufen muss, um das Laufwerk auszuwerfen?

Tertiäre Frage: übersehe ich einen offensichtlichen anderen Weg?

Ich bin offen für alle Antworten von "Ich hatte das gleiche Problem, hier ist der Quellcode der Lösung, die ich geschrieben habe" zu "Ich denke, vielleicht wird Ihnen dieses Tutorial helfen?"

Ich würde lieber in C / C ++ / C # arbeiten, aber ich bin offen für andere Vorschläge. Wie der Titel sagt, arbeite ich unter Windows 7.

* Für die Neugierigen ist die Software die MSI S-Bar, die aus irgendeinem Grund als "Feature" dieser Reihe von Laptops angepriesen wird.

    
medivh 25.08.2011, 14:10
quelle

6 Antworten

1

Ich habe das selbe Problem selbst erlebt. Ich weiß nicht, ob Sie mit Autohotkeys vertraut sind oder nicht, aber Sie haben damit ein Skript geschrieben, das die S-Bar ersetzt.

AutoHotKey (AHK) ist eine Open-Source-Makroerstellungs- und Skriptsprache für Windows mit vielen Funktionen. Sie können die Skripts über das Programm selbst ausführen oder sie zu ausführbaren Dateien kompilieren, die auf jedem Computer ausgeführt werden können.

Sie können das Auswurf-CD-Laufwerk mit nur ein paar Zeilen Code arbeiten lassen:

%Vor%

SC142 ist der Schlüsselcode. Es ist vielleicht nicht auf jedem MSI-Laptop gleich, aber wenn Sie die Zeile "#InstallKeybdHook" an der Spitze Ihres Skripts setzen. Sie können alle Tastaturereignisse anzeigen, die AHK über eine GUI sieht.

Ich war in der Lage, die meisten Tasten auf verschiedene Funktionen auf meinem MSI-Laptop abzubilden, obwohl AHK keine Tastaturereignisse von einem von ihnen erfassen würde.

Zum Beispiel:

%Vor%     
kappamaki 01.10.2011, 14:30
quelle
1

Hotkeys

Wenn sie Teil der Tastatur sind (nur weil sie so aussehen, wie sie sind, bedeutet das nicht, dass sie wirklich sind), werden sie einen Scancode haben. SetWindowsHookEx kann verwendet werden, um den Scancode herauszufinden und darauf zu reagieren - der folgende Code sollte helfen:

%Vor%

HID

Ein Mensch-Maschine-Interface wird viel schwieriger zu interagieren sein. Hoffentlich kann Das Code-Projekt helfen.

    
Jonathan Dickinson 25.08.2011 14:51
quelle
1

Auswerfen des CD-Laufwerks. Erfordert keine Administratorrechte.

%Vor%     
Harry Johnston 29.08.2011 01:37
quelle
0

hier nachsehen:

c:

CDR

c #:

OpenCD

    
CB. 25.08.2011 14:16
quelle
0

Sie müssen mciSendString API verwenden. schau hier SO Link für diese , wenn du es programmatisch machst.

    
Tigran 25.08.2011 14:16
quelle
0

Sie könnten ein einfaches Programm schreiben, das einfach die Tastatur abfragt, während Sie die Auswurftaste drücken. Verwenden Sie GetKeyboardState () und prüfen Sie, was gedrückt wurde. Oder Sie können die Meldung WM_KEYDOWN verarbeiten und die Schlüsselcodes als überprüfen Sie drücken die Auswurftaste.

Haben Sie versucht, in der Systemsteuerung zu suchen? Gehen Sie zu Systemsteuerung & gt; Monitor & gt; Key Settings - von dort aus können Sie die Tasten auf Ihrer Tastatur neu zuweisen.

    
Jeff Paquette 25.08.2011 14:17
quelle

Tags und Links