Kann ein Programm durch Einschalten / Anschließen eines bestimmten USB-Geräts aktiviert werden?

435
Herb

Ist es möglich, auf das Anschließen (oder Einschalten) eines bestimmten USB-Geräts am USB-Hub des PCs zu reagieren, um automatisch ein Powershell-Skript (oder eine ausführbare Datei oder ein Stapelverarbeitungsskript) auszuführen?

Ich besitze einen stationären Barcodeleser, der Eingaben für ein Programm liefert, das die gelesenen Barcodes erwartet. Der Barcodeleser wird nicht häufig verwendet (er verfolgt Inventargegenstände) und ist daher meistens deaktiviert.

Ziel ist es, das zugehörige Programm einfach zu aktivieren, so dass das Scannen ohne weiteres möglich ist.

Bearbeiten: Das Gerät scheint beim Ein- und Ausschalten keine relevanten Ereignisse zu erzeugen. Einzelheiten finden Sie in den Kommentaren. Danke LPChip.

Wenn dies relevant ist, wird gemäß der Treiberregisterkarte des Geräte-Managers das betreffende Gerät als HID \ VID_0C2E & PID_0200 \ 7 & 3445e1e3 & 0 & 0000 identifiziert . Ist im ausgeschalteten Zustand nicht anwesend.

1
Fragen Sie, ob Sie eine Anwendung automatisch starten können, wenn ein USB-Speichergerät angeschlossen ist? Ramhound vor 6 Jahren 0
Ich denke, Task Scheduler vs. Eventlog Monitoring kann dies tun, aber ich bin mir nicht sicher, wie es reagiert und ob es ein bestimmtes Gerät herausfiltern kann. LPChip vor 6 Jahren 0
@Ramhound, nein, kein Speichergerät. Wie gesagt, ein Barcode-Scanner. Was für praktische Zwecke als eine Tastatur angesehen werden kann, die einige Zeichen und eine Enterkey liefert. Herb vor 6 Jahren 0
@LPChip, im Task Scheduler `Create a task`,` Trigger`, `New`-Dialog scheint der einzig sinnvolle Trigger 'On a event' zu sein, oder? Dann "userdefiniert", da es keinen passenden vordefinierten Auslöser gibt. Es gibt einige Quellen mit dem Namen "USB -...", die die Verwendung einer dieser Quellen vorschlagen. Der Geräte-Manager listet insgesamt 6 USB-Eingabegeräte auf, die beim Einschalten des Barcode-Lesegeräts auf 7 springen. Bei der Überprüfung ihrer Standorte kann ich meinen Leser an der Position "Port_ # 0001.Hub_ # 0004" finden. Und jetzt bin ich verloren. Was kann ich mit diesen Informationen machen? Herb vor 6 Jahren 0
Zuerst müssen Sie im Ereignisprotokoll etwas finden, das den Leser betrifft, und dann prüfen, ob Sie damit arbeiten können. LPChip vor 6 Jahren 0
@LPChip, danke für deine bisherigen Vorschläge. Der vielversprechendste EventLog-Knoten wäre Microsoft / Windows / DriverFramework-UserMode / Operational, richtig? Nun, es ist völlig leer. Herb vor 6 Jahren 0
Das Beste, was Sie tun können, ist ein Programm namens NirSoft FullEventLog herunterzuladen, das Ihnen das gesamte Ereignisprotokoll in einer Übersicht anzeigt. Stecken Sie dann das Gerät ein, sortieren Sie nach Zeit / Datum und finden Sie das Ereignis auf diese Weise. LPChip vor 6 Jahren 0
@LPChip, das habe ich, danke. Beim Ein- / Ausschalten des Barcodelesers werden nur Ereignisse des Kanals aufgeführt: Microsoft-Windows-Audio / PlaybackManager (Anbieter: Microsoft-Windows-Audio). Das Gleiche gilt für das Ein- und Ausschalten anderer Nichtspeichergeräte, die an demselben USB-Hub angeschlossen sind. Ich bin mir ziemlich sicher, dass sie die Systemklänge "USB-Gerät angeschlossen" und "freistehend" wiedergeben, die tatsächlich hörbar sind. Herb vor 6 Jahren 0
Ja, sehr wahrscheinlich. Das bedeutet, dass Sie mit integrierten Windows-Funktionen keine Automatisierungen durchführen können. LPChip vor 6 Jahren 0
@LPChip, danke für deinen Rat. Noch eine Sache, bevor ich überlege, eine App zu programmieren, die die Hardware des Systems abfragt: Beim Einschalten erscheint eine neue HID-Tastatur unter DeviceManager> PCName> Keyboards (sie identifiziert sich als HID \ VID_0C2E & PID_0200 \ 7 & 3445e1 & 0 & 0000). Diese Tatsache kann nicht ausgenutzt werden? Herb vor 6 Jahren 0
Was meinst du mit ausgenutzt? Dies ist die ID der Hardware. Wenn Sie diesen String googeln, erhalten Sie eine Referenz für diese spezielle Hardware. LPChip vor 6 Jahren 0

0 Antworten auf die Frage