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)