Wie kann ich den Grafiktreiber zurücksetzen, ohne die Tastenkombination zu verwenden? (STRG + UMSCHALT + WIN + B)

Wie kann ich den Grafiktreiber zurücksetzen, ohne die Tastenkombination zu verwenden? (STRG + UMSCHALT + WIN + B)

Ich muss den Grafiktreiber auf einem Windows 10-Computer mit ARM32 zurücksetzen. Die alte, gängige Tastenkombination (STRG + UMSCHALT + WIN + B) funktioniert! Ja! und erzeugt wie erwartet einen einzelnen Piepton, aber die Tastatur ist nicht immer vorhanden, daher muss ich dies über die Software tun.

Schon versucht:

  • Senden der Schlüssel an Windows mit Powershell (zwei Methoden)
  • Senden der Schlüssel an Windows mithilfe der Visual C++-App
  • Sendkeys App-Dienstprogramm zum Senden der Tastenkombination
  • Devcon? weiter unten lesen
  • PnpUtil (siehe unten)

All das funktioniert unter Windows (getestet, ja), aber es funktioniert nicht unter Windows ARM32 und ich bekomme keine Fehlermeldungen. Es ist möglich, dass die DLLs oder welche Bibliotheken auch immer unter Windows ARM diese Funktionen nicht zulassen, schließlich finde ich in anderen Entwicklungsthreads, dass es nicht die volle Funktionalität hat und an einigen Stellen (offiziell) sogar experimentelles Zeug erwähnt wird, schließlich wurde Windows 10 (32 Bit) nie offiziell veröffentlicht, nur Windows x64 ARM.

Ich habe verschiedene Methoden ausprobiert, aber jede einzelne davon zwingt mich dazu, Gigabyte an Daten und Bibliotheken herunterzuladen, um eine kleine EXE-Datei zu erstellen, die am Ende 1, 2, 3 zusätzliche Dateien zur Laufzeit erfordert, die nirgends zu finden sind, und wenn sie gefunden werden... nach Stunden: Es funktioniert nicht.

Devcon.exe: Dieses Befehlszeilenprogramm würde mein Problem lösen, aber ich kann es nicht finden. Ich brauche es für ARM32, kann aber keinen einzigen Link dazu finden. Habe den Quellcode gefunden, aber nach stundenlangem Optimieren von VS++ und den kryptischen Tutorials, die ich gefunden habe, erhalte ich immer einen neuen Fehler, wenn ich versuche, ihn zu erstellen und für ARM32 zu kompilieren. Das Problem hängt mit dem Windows Driver Kit zusammen und ich habe im Internet diverse Threads von Leuten gefunden, die Probleme beim Kompilieren haben. Es soll im WDK enthalten sein, aber nachdem ich die Diff-Sets heruntergeladen hatte, konnte ich es dort nicht finden. Es gibt einige Links zu x86 und x64, aber nicht zu ARM32. In der offiziellen Dokumentation von Microsoft steht, dass man es bekommt, indem man WDK, Visual Studio und Windows SDK für Desktop installiert, aber nachdem ich das getan hatte... (Stunden des Herunterladens, Installierens und Suchens), war es auf meinem Computer nirgends zu finden.

PnPUtil: Die Option „Gerät neu starten“ sollte funktionieren, sie ist dokumentiert und seit 2004 auf jedem Windows vorhanden (gemäß MS-Dokumentation). Tatsächlich ist die EXE-Datei jedoch zwar vorhanden (unter Windows), verfügt aber nicht über diese Funktion (Gerät neu starten), sodass sie für meine Zwecke nicht funktioniert.

Jede Hilfe wird geschätzt.

Antwort1

Ich aktualisiere diese Frage, sobald ich die Antwort gefunden habe, und hoffe, dass sie auch für andere nützlich ist. Es ist einfach, den Grafiktreiber/die Anzeige mit Powershell „zurückzusetzen“, sofern Sie über die richtigen Berechtigungen und Rechte verfügen. Wie? So:

$d = Get-PnpDevice| where {$_.friendlyname -like "NAME-OF-THE-DEVICE*"};
$d  | Disable-PnpDevice -Confirm:$false;
$d  | Enable-PnpDevice -Confirm:$false

Dadurch wird das Gerät deaktiviert und anschließend wieder aktiviert, was zu einem vollständigen Reset führt. Abhängig von Ihrem Computer blinkt der Bildschirm möglicherweise (oder nicht) und der Ton „Neue Hardware erkannt“ wird möglicherweise ausgelöst.

Warum brauchte ich das? Weil Surface RT1 und Surface RT2, die auf Windows 10 aktualisiert wurden, ein Problem haben, bei dem die Helligkeitssteuerung nach einigen Minuten nach dem Einschalten deaktiviert wird. Dies ist ein Fehler einer offiziellen, noch nicht veröffentlichten Windows-Version. Was ich hier beschrieben habe, funktioniert und aktiviert die Helligkeitssteuerung perfekt. Dies kann durch Deaktivieren/Aktivieren des Grafiktreibers oder nur des Displays (Geräts) erreicht werden. Wie erklärt, verursacht das eine Blinken, das andere nicht. Je nach Fall müssen Sie möglicherweise zuerst die Berechtigungen für Ihr PowerShell-Skript erhöhen.

Ich habe auch andere Möglichkeiten gefunden, dies über Code (C#) oder Sendkeys und andere Bibliotheken mit C++ zu erreichen, aber es war etwas chaotisch. Das Powershell-Skript hat es leicht gelöst, dann habe ich einfach eine benutzerdefinierte geplante Aufgabe hinzugefügt, die beim Aufwachen ausgelöst wird.

Das ist es.

verwandte Informationen