Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2136 connectés 

  FORUM HardWare.fr
  Programmation
  API Win32

  EnumDisplayMonitors/ depuis un service Windows

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

EnumDisplayMonitors/ depuis un service Windows

n°2318589
Kalipok
Gniii ?
Posté le 01-08-2018 à 17:58:44  profilanswer
 

Bonjour à tous,
 
Je cherche à utiliser l'API EnumDisplayMonitors depuis un service Windows (sous Windows 10, voire truc un poil plus vieux), mais le hic, c'est que cela ne semble pas fonctionner depuis un service (depuis une appli, ça marche impeccable).
 
Quelqu'un s'est déjà heurté à ce problème et est parvenu à le régler ?
 
J'ai tripatouillé le service dans tous les sens : cocher la case "accès au bureau" (ou truc dans le genre), mettre en user ma pomme puis l'administrateur, mais non, pas moyen...  :sweat:  
 
Bon... Si ça se trouve, cette API là fonctionne et c'est une des suivantes qui foirent : GetPhysicalMonitorsFromHMONITOR ou encore SetMonitorBrightness...
 
En farfouillant sur le web, il y a une notion de session 0, blabla, tout ça... Mais j'avoue ne pas maitriser du tout :o

mood
Publicité
Posté le 01-08-2018 à 17:58:44  profilanswer
 

n°2318592
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-08-2018 à 19:26:55  profilanswer
 

Et GetSystemMetrics(SM_CMONITORS) ne fonctionne pas ?
C'est souvent préférable de l'utiliser à la place de EnumDisplayMonitors (si ton but est de compter les moniteurs présents)


Message édité par Harkonnen le 01-08-2018 à 19:27:41

---------------
J'ai un string dans l'array (Paris Hilton)
n°2318641
Kalipok
Gniii ?
Posté le 02-08-2018 à 23:35:14  profilanswer
 

Pas uniquement en fait... Mon but est de chopper un handle sur chacun des moniteurs physiques pour pouvoir régler leurs luminosités via la méthode SetMonitorBrightness...

 

Merci pour ton retour :jap:


Message édité par Kalipok le 02-08-2018 à 23:35:47
n°2318648
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 03-08-2018 à 09:07:39  profilanswer
 

De toute façon, ma réponse est fausse car GetSystemMetrics() ne fonctionnera pas non plus, car à partir de Windows Server 2008, les services sont exécutés dans la session 0. Avant Windows Server 2008, la session 0 était la session console (la session que tu vois quand tu branches un moniteur directement sur le serveur), ce qui n'est plus le cas depuis Windows Server 2008 (la session 0 isole les services, et les applications sont ouvertes dans les sessions utilisateur). Du coup, sans console, pas d'informations d'écran, ce qui explique ton souci.

 

Ce que tu peux faire, c'est créer une petite application au démarrage de ta session utilisateur qui va appeler EnumDisplayMonitors(). Dans la callback MONITORENUMPROC que tu transmets à cette fonction, tu vas récupérer le HDC de ton moniteur, puis le transmettre à ton service via un named pipe par exemple. Ton service se chargera ensuite d'appeler SetMonitorBrightness() avec le HDC transmis.


Message édité par Harkonnen le 03-08-2018 à 09:41:51

---------------
J'ai un string dans l'array (Paris Hilton)
n°2318654
Kalipok
Gniii ?
Posté le 03-08-2018 à 12:52:05  profilanswer
 

Excellente idée :jap:
 
Edit : Je n'aurai peut être pas le temps de le faire, mais si ma méthode bourrin de lancer une app au démarrage de Windows, sans service du tout, ne convient pas, je me lancerai dans cette solution  [:cerveau charlest]


Message édité par Kalipok le 03-08-2018 à 12:55:28

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  API Win32

  EnumDisplayMonitors/ depuis un service Windows

 

Sujets relatifs
Heure de démarrage windows 10 Partage de dossier sur Windows 7 Embedded
[Résolu]Execution de VBS depuis un hta sur windows server 2012Probleme execution VBS sous windows 10
Windows et syntaxe dans cmd.exeAppeler DllMain d'une librairie dans une application console Windows
script pour changer les paramètres windowsExecuter une ligne de commande windows en java
svp besoin d'aide pour les creation d'un service 
Plus de sujets relatifs à : EnumDisplayMonitors/ depuis un service Windows


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR