ich habe folgendes Problem. In regelmäßigen Abständen hängt sich mein USB Port wo mein ELO Touchscreen dran hängt auf.
Dann kann ich keine Eingabe über den Bildschirm mehr machen.
Müsste das gesuchte sein?
Eine USB Tastatur ist letzlich auch nur ein USB Device mit einer eindeutigen Hardware-ID.
Diese steht in der Registry bzw. Gerätemanager.
Weiter unten wird auf Devcon von MS verwiesen… das müsste das benötigte haben.
Prüfen ob bestimmtes Device (=HardwareID) verbunden ist, und falls nicht kann man den USB damit neu starten (oder mit deinem vorhandenem Programm)
Ich habe ein Script für mein HID-Funkmodul, das findet über die VendorID usw das Gerät, verbindet es ev. und meldet es an XY-Ungelöst.
Ev ist es was für euch, habe alle Rem’s drin gelassen, war gut zur Inbetriebnahme:
<?
$hid_id =39812 /*[HID DISPLAY]*/; // ID der HID-Instanz in IP-Symcon
$vendor_id = 5840; // Vendor-ID des zu suchenden HID-Geräts, = Helmuts VID
$product_id =1206; // Product-ID des zu suchenden HID-Geräts, Helmuts PID ist 1207 oder 1206
//$interval = 15; // Kontrollintervall in Minuten
$instance = IPS_GetInstance($hid_id);
//print_r(HID_GetDevices($hid_id));
echo " HID Such Ergebniss: ",$instance['InstanceStatus'] ;
$found_device =false;
$devices = HID_GetDevices($hid_id);
foreach ($devices as $data);
//if ($instance['InstanceStatus'] ==200)
//{
if (((int)$data['VendorID'] == $vendor_id) and ((int)$data['ProductID'] == $product_id) and ($instance['InstanceStatus'] ==200) ):
HID_SetDeviceSerial($hid_id, (String)$data['DeviceSerial']);
HID_SetDeviceVendorID($hid_id, $vendor_id);
HID_SetDeviceProductID($hid_id, $product_id);
IPS_ApplyChanges($hid_id);
endif;
// }
//if ($instance['InstanceStatus'] ==102)
//{
if (((int)$data['VendorID'] == $vendor_id) and ((int)$data['ProductID'] == $product_id)and ($instance['InstanceStatus'] ==102)):
echo " Helmut's 1. HID-Gerät gefunden ";
SetValueBoolean(31286 /*[HID Funk Modul\HID USB Modul 1 da?]*/,false);
$found_device = true;
echo (String)$data['VendorID'];
echo " ";
echo (String)$data['ProductID'];
echo " ";
echo (String)$data['DeviceSerial'];
echo " ";
//HID_SetDeviceSerial($hid_id, (String)$data['DeviceSerial']);
//HID_SetDeviceVendorID($hid_id, $vendor_id);
//HID_SetDeviceProductID($hid_id, $product_id);
//IPS_ApplyChanges($hid_id);
//break;
endif;
//}
if ($instance['InstanceStatus'] >=103):
//if (((int)$data['VendorID'] != $vendor_id) or ((int)$data['ProductID'] != $product_id)):
echo " Helmuts 1. HID-Gerät nicht gefunden ";
SetValueBoolean(31286 /*[HID Funk Modul\HID USB Modul 1 da?]*/,true);
//IPS_SetScriptTimer($IPS_SELF, $interval * 6);
endif;
//echo HID_GetDeviceSerial($hid_id);
?>