Créer une superposition ou désactiver le moniteur

0

Une partie de l'exercice que je crée pour utiliser un PC sans moniteur (j'entends par là uniquement utiliser un clavier et une souris et savoir par cœur quels boutons cliquer) nécessite de le désactiver en quelque sorte et de laisser l'étudiant arrêter le processus qui l'a créé. superposition noire ou l'activation d'un script qui réactive le moniteur.

J'ai essayé d'utiliser SendMessage dans Winapi, mais cela ne fait que mettre le moniteur en veille, ce que tout mouvement de la souris ou tout clic sur le clavier désactive. J'ai utilisé ceci:

SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);

J'ai constaté qu'il existe un registre gérant la détection de nouveaux moniteurs dans Windows sous HKLM> Logiciel> Microsoft> TMM> UseIViewHelper. Soi-disant, si vous le modifiez de 1 à 0, la détection de nouveaux moniteurs cesse mais ne semble pas fonctionner (ou du moins, à ma connaissance).

J'ai essayé d'utiliser MultiMonitorTool de Nir Soffer, mais cela ne semble pas désactiver un moniteur principal, et comme je n'ai qu'un seul moniteur sur le PC, cela n'aide en rien.

Quelqu'un peut-il m'aider avec une idée de la façon de le faire ou peut-être quel outil utiliser?

Merci

Alex Kipper
la source
Vous pouvez dessiner des ordures (ou tout simplement un rectangle noir) directement sur la fenêtre du bureau . Une autre idée hérétique que vous pourriez essayer serait le profil de couleur personnalisé (ICC) pour tout noircir.
PTwr
Ne pourriez-vous pas appuyer simplement sur CRTL + ALT + SUPPR et supprimer le processus de la fenêtre noire? Pouvez-vous forcer la fenêtre du bureau à être toujours au premier plan? Et le profil de couleur personnalisé sonne hérétique haha!
Alex Kipper
J'ai essayé de créer un TopMost = true in c # sans bordure et qui fonctionne très bien, mais le gestionnaire de tâches le contourne facilement, ainsi que les commandes récemment utilisées en mode run qui apparaissent sur la page vierge. Existe-t-il un moyen de corriger ces problèmes?
Alex Kipper
Dessiner constamment sur le bureau HWND "contourne" toujours sur les fenêtres supérieures (comme le gestionnaire de tâches), mais le curseur de la souris devrait toujours être au-dessus. C'est mieux que la fenêtre la plus haute car elle ne volera pas le focus de la fenêtre sous-jacente.
PTwr
Comment pourrait-on le faire? J'ai essayé de créer un rectangle et de le dessiner de temps en temps (vrai), mais il semble un peu buggé et ne bloque pas tout. J'ai l'impression de manquer des connaissances que je ne parviens pas à trouver dans Google. Comment écririez-vous un rectangle qui se redessine constamment sur tout l'écran sans dérober le focus d'une autre fenêtre?
Alex Kipper

Réponses:

0

J'ai fini cette tâche en utilisant éventuellement quelques astuces. Voici comment je l'ai fait:

  1. A écrit un formulaire C # avec la propriété topmost = true en faisant face à toutes les fenêtres possibles à l’exception du gestionnaire de tâches, du menu Démarrer et de la barre des tâches.
  2. A écrit en C # une fonction de changement de registre qui active le gestionnaire de tâches et a supprimé la plupart des options de l'écran crtl + alt + suppr.
  3. Ajout d'une fonction qui active un script de batte qui active un script AHK pour désactiver toutes les possibilités de crtl + alt + delete (un peu dégueulasses, je sais).
  4. Créé une fonction pour supprimer la barre des tâches.
  5. Modifiez manuellement les options de confidentialité en allant dans: barre de tâches> options> démarrer> décocher les deux options dans la section confidentialité.

Résultat:

Un calque noir sans menu de démarrage, sans crtl + alt + suppr, sans gestionnaire de tâches, sans onglet alt. Pourtant, tout ce que vous faites est enregistré normalement, comme si le moniteur était déconnecté. Soyez prudent lorsque vous faites cela car vous pourriez être bloqué sans option! J'ai créé une autre application qui rétablit tous ces éléments et l'ajoutée aux raccourcis d'exécution. Ainsi, tout en ne voyant rien, je pouvais appuyer aveuglément sur CRTL + R et écrire le raccourci que j'ai créé pour tout désactiver!

PM moi si quelqu'un veut le code source complet.

Alex Kipper
la source