![]() |
Usb und Energiesparmodus
Hallo,
wir haben einen Generic Usb Device Driver den wir für unsere Usb Kommunikation nutzen (Messsteuerung, Messdatenempfang). Nun kommt es vereinzelt (nur auf ASUS Laptops!) dazu, das die Usb Kommunikation willkürlich unterbrochen wird. Wir vermuten, dass es mit der Usb Energiesparfunktion von Windows zusammenhängt (Option: "Computer kann das gerät ausschalten um energie zu sparen"). Da wir dem Kunden die Arbeit abnehmen wollen, die Option auszuschalten, ist meine Frage: Ist es möglich in einer Delphi-App diese Energiespareinstellung zu ändern? Danke und beste Grüße |
AW: Usb und Energiesparmodus
Hallo Tom,
ich habe auch diverse USB Messgeräte und die laufen mehrere Tage 24 Std. dein Problem hatte ich anfangs auch, die Lösung war ein Externer USB Hub. nun stellt niemand mehr ab um Strom zu sparen :-D Grüsse Peter |
AW: Usb und Energiesparmodus
Ich hatte das gleiche Problem bei der Umstellung einer Anwendung auf Windows 10. Komischerweise hat bei mir nicht einmal die Umstellung in den Energiesparoptionen etwas gebracht. Trotzdem wurde die Spannung über USB bei mir ständig unterbrochen.
Konnten bei dir wirklich alle Probleme mit einem Umstellen dieser Option gelöst werden? Ich bin mir nicht sicher, ob ich es als Kunde begrüßen würde, wenn ein Programm solche Einstellungen einfach so ändert. Dann sollte wenigstens eine Meldung bzw. Frage erscheinen. Ich habe das Problem bei mir damals so gelöst, dass ich eine Art Server gebaut habe, welcher die Verbindung permanent aktiv hält. Somit schaltet Windows den Port nicht ab. Ich habe dann nur noch mit dem Server und nicht mehr mit dem Gerät direkt kommuniziert. In meinem Fall war es eine gute Lösung aber das muss natürlich nicht immer gelten. Grüße Headbucket |
AW: Usb und Energiesparmodus
Moin,
Zitat:
![]() alle USB-Controller findest du hier drunter Namespace = root\CIMV2 Klasse = Win32_USBHub fürs Aktivieren / Deaktivieren brauchst du Namespace = root\WMI Klasse = MSPower_DeviceEnable -------------- PowerShell, sollte ausführbar sein...
Code:
Um jetzt noch Delphi zu bemühen, könntest du das hier lesen:
$usb = Get-WmiObject Win32_USBHub
$pm = Get-WmiObject MSPower_DeviceEnable -Namespace root\wmi | where {$_.InstanceName.Contains($usb.PNPDeviceID)} foreach ($p in $pm) { $p.Enable = $False $p.psbase.Put() } ![]() |
AW: Usb und Energiesparmodus
Teste mal die Registry-Einstellung für EnableSelectiveSuspend
USB Selective Suspend ![]() WinUsb_SetPowerPolicy function ![]()
Code:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB\ROOT_HUB20\4&1e0b1e80&1\Device Parameters] "SymbolicName"="\\??\\USB#ROOT_HUB20#4&1e0b1e80&1#{f18a0e88-c30c-11d0-8815-00a0c906bed8}" "EnableSelectiveSuspend"=dword:00000000 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz