Erstellen Sie ein Blackoverlay oder deaktivieren Sie den Monitor

379
Alex Kipper

Teil einer Übung, die ich für die Verwendung eines PCs ohne Monitor erstellt habe (damit meine ich nur die Verwendung einer Tastatur und einer Maus und auswendig zu wissen, welche Tasten zu klicken sind), muss er irgendwie deaktiviert werden und der Student muss den Prozess stoppen, durch den dieser Vorgang erstellt wurde schwarzes Overlay oder Aktivieren eines Skripts, das den Monitor wieder aktiviert.

Ich habe versucht, die SendMessage in winapi zu verwenden, aber der Monitor wird nur in den Ruhezustand versetzt, was durch Mausbewegungen oder Tastaturklicks deaktiviert wird. Ich habe das benutzt:

SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2); 

Ich habe herausgefunden, dass es eine Registrierung gibt, die die Erkennung neuer Monitore in Fenstern unter HKLM> Software> Microsoft> TMM> UseIViewHelper behandelt. Wenn Sie den Wert von 1 auf 0 ändern, werden neue Monitore nicht mehr erkannt, es scheint jedoch nicht zu funktionieren (oder zumindest für mein Verständnis).

Ich habe versucht, MultiMonitorTool von Nir Soffer zu verwenden, aber es scheint keinen primären Monitor zu deaktivieren, und da ich nur einen Monitor für den PC habe, hilft das überhaupt nicht.

Kann mir jemand mit einer Idee helfen, wie es geht, oder vielleicht welches Werkzeug ich verwenden sollte?

Vielen Dank

0
Sie können Müll (oder nur ein schwarzes Rechteck) direkt auf [Desktop-Fenster] zeichnen (https://msdn.microsoft.com/de-de/library/windows/desktop/ms633504 (v = vs.85) .aspx). Eine andere ketzerische Idee, die Sie ausprobieren könnten, wäre ein benutzerdefiniertes Farbprofil (ICC), um alles schwarz zu machen. PTwr vor 7 Jahren 0
Könnten Sie nicht einfach CRTL + ALT + DELETE drücken und den schwarzen Fensterprozess löschen? Können Sie das Desktop-Fenster zwingen, immer im Vordergrund zu sein? Und das benutzerdefinierte Farbprofil klingt ketzerisch haha! Alex Kipper vor 7 Jahren 0
Ich habe versucht, ein randlos und TopMost = true in c # zu erstellen, was zwar ziemlich gut funktioniert, der Task-Manager umgeht es jedoch leicht und kürzlich verwendete Befehle werden über die leere Seite angezeigt. Gibt es eine Möglichkeit, diese Dinge zu beheben? Alex Kipper vor 7 Jahren 0
Ständiges Zeichnen direkt auf dem Desktop "umgeht" HWND immer in den oberen Fenstern (wie der Task-Manager), der Mauszeiger sollte sich jedoch weiterhin darüber befinden. Es ist besser als das oberste Fenster, da es nicht den Fokus des darunter liegenden Fensters stiehlt. PTwr vor 7 Jahren 0
Wie würde man das machen? Ich habe versucht, ein Rechteck zu erstellen und es in einer Weile zu zeichnen (true), aber es scheint etwas fehlerhaft zu sein und blockiert nicht alles. Mir fehlt das Wissen, das ich bei Google nicht finden kann. Wie würden Sie ein Rechteck schreiben, das sich ständig auf dem gesamten Bildschirm neu zeichnet, ohne den Fokus von einem anderen Fenster zu stehlen? Alex Kipper vor 7 Jahren 0

1 Antwort auf die Frage

0
Alex Kipper

Ich habe diese Aufgabe mit ein paar Tricks erledigt. So habe ich es gemacht:

  1. Schrieb ein C # -Formular mit der Eigenschaft topmost = true, das vor allen möglichen Fenstern außer dem Task-Manager, dem Startmenü und der Taskleiste angezeigt wird.
  2. Schrieb in C # eine Funktion zum Ändern der Registrierung, die den Task-Manager aktiviert, und entfernte die meisten Optionen aus dem Bildschirm crtl + alt + del.
  3. Eine Funktion wurde hinzugefügt, die ein Fledermaus-Skript aktiviert, mit dem ein AHK-Skript aktiviert wird, um alle Möglichkeiten für Crtl + Alt + Delete zu deaktivieren (irgendwie abscheulich, ich weiß).
  4. Funktion zum Entfernen der Taskleiste erstellt.
  5. Die Optionen für den Datenschutz wurden manuell geändert, indem Sie mit der rechten Maustaste auf Taskleiste> Optionen> Startmenü> beide Optionen im Datenschutzbereich abwählen.

Ergebnis:

Ein schwarzes Overlay ohne Startmenü, ohne Strg + Alt + Entf, ohne Task-Manager, ohne Alt-Tab. Alles, was Sie tun, wird normalerweise so registriert, als wäre der Monitor getrennt. Seien Sie vorsichtig, wenn Sie dies tun, da Sie ohne Option stecken bleiben können! Ich habe eine andere Anwendung erstellt, die all diese Sachen zurücksetzt und sie den Laufverknüpfungen hinzufügt. So konnte ich blindlings CRTL + R drücken und die Verknüpfung schreiben, die ich erstellt habe, um alles zu deaktivieren!

PM mich, wenn jemand den vollen Quellcode möchte.