Ich möchte wissen, wenn ein USB-Gerät an den Computer angeschlossen ist, auf dem meine Qt-Anwendung läuft (unter Windows). In meinem Haupt-QWidget habe ich winEventFilter
wie folgt neu implementiert:
Ich würde erwarten, dass qDebug zumindest etwas sendet, wenn ich ein USB-Gerät anschließe, aber ich bekomme nichts.
Ich nehme an, dass ich den Prozess hier grundsätzlich falsch verstehe - das ist meine erste Qt-App!
Ich glaube, was Sie möglicherweise vermissen, ist der Anruf zur Registrierung für die Gerätebenachrichtigung. Hier ist Code, den ich benutze, um dasselbe zu tun, obwohl ich die winEvent () - Methode der QWidget-Klasse überschreibe und nicht den winEventFilter.
%Vor% HINWEIS: Sie müssen höchstwahrscheinlich die Werte von DEV_BROADCAST_DEVICEINTERFACE
an Ihre Bedürfnisse anpassen.
BEARBEITEN: Um diesen Code zu verwenden, müssen Sie die richtigen Header-Dateien einfügen und die richtige Konfiguration vornehmen. DEV_BROADCAST_DEVICEINTERFACE
erfordert, dass der Dbt.h-Header eingeschlossen wird. Der Schwerpunkt dieses Codes liegt außerdem in der Funktion RegisterDeviceNotification. Informationen finden Sie auf MSDN
Ich arbeite in den gleichen Zeilen, aber in C #.
Sie müssen Ihre Anwendung beim System registrieren (sehen Sie sich die Funktion RegisterHidNotification () an). Meine sieht so aus: '
%Vor% Der wichtigste Teil der Funktion ist das Bit, das ich fett hervorgehoben habe (oder zumindest versucht habe). Definiert als: public Guid GUID_DEVINTERFACE_USB_DEVICE = new Guid("A5DCBF10-6530-11D2-901F-00C04FB951ED");
Hoffe, Sie können es an Ihre Anwendung anpassen.