Avatar billede qurzyx Nybegynder
03. oktober 2009 - 07:54 Der er 3 kommentarer

Win32 API SendMessage

Hej. Jeg kan få denne kommando:
            SendMessage(this.Handle.ToInt32().....
til at virke når jeg bruger forms. Men hvordan virker denne i en service (Windows Service) . This.handler eksisterer ikke?
Avatar billede mrtn Nybegynder
03. oktober 2009 - 08:10 #1
Er det ikke fordi at som service har du ikke adgang til desktop vinduer? En service er uden gui. Hvilken vindue vil du sende en message til?
Avatar billede qurzyx Nybegynder
03. oktober 2009 - 08:28 #2
Jeg ønsker at benytte

        public int WM_SYSCOMMAND = 0x0112;
        public int SC_MONITORPOWER = 0xF170;
        const int HWND_BROADCAST  = 0xFFFF;

        SendMessage(-1, WM_SYSCOMMAND, SC_MONITORPOWER, 2);

Til at slukke for skærmen, og det virker helt fint i en form, men mente bare dette ville være muligt at "sende" et signal om at slukke skærmen gennem en service?
Avatar billede kza Nybegynder
04. oktober 2009 - 17:16 #3
Du skal slå 'Tillad tjeneste at fungere interaktivt med Skrivebord' til. Det kan gøres i Tjenester dialogen i Kontrol panellet.

Hvis du vil google det, så hedder det "Allow service to interact with desktop" på engelsk.

Noget lader til, at det ikke vil virke på Windows Vista.

/Klaus
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester