Kategori: C#

En helt ny inriktning

av den 11 Nov, 2013, i kategorin C#

Hallå ihop, det var extremt länge sedan jag skrev något på denna bloggen… till den nivån att jag har funderat på att döda den och börja använda domänen till något annat. Sedan jag skrev sist så skulle jag vilja påstå att jag är en helt annan person. Jag har börjat arbeta på Volvo IT i Göteborg och sitter på en klient gruppering där man kan säga att jag har mognat till en del.

Dessutom så har jag fått lära mig att “Programmera och scripta till produktions-miljö” som jag har fått höra, så jag känner att det är dags att bidra lite till communityn så som alla har bidragit till mig när jag har googlat runt efter lösningar på problem, vi får se om detta är ett hållande koncept !

Har ni så som jag irriterat er på hur en Windows Laptop agerar när du stänger locket? Tänk er tanken att du försöker stänga av datorn och slår igen locket, sedan så kommer du tillbaka och öppnar upp locket nästa gång du ska använda datorn så återupptar den nerstängningen. Detta problemet har ni haft någon gång, erkänn? :) Tänk om ni kunde få detta beteendet att fungera utan att stänga av möjligheten att försätta datorn i hibernate ? Jag fann längst ner på en technet artikel att det finns ett event som slår när du öppnar och stänger locket. Av speciella skäl så kommer jag inte lägga upp lösningen eller källkoden här, för då måste jag skriva om den :) Språket är C# och jag utgår från att ni har en vanlig Windows Service applikation framför er.

Det första ni kommer att behöva är en klass som ni i stort sett kan döpa till vad ni vill, jag brukar använda Win32 på statiska klasser som innehåller API anrop.

Detta är i stort sett allt ni behöver. I en Windows Service så har ni en VOID metod som heter OnStart() som tar in en string array, denna tillkallas alltid innan InitializeComponent()… I think! Det är så jag förstått det i alla fall. I denna metod så skulle det kanske vara lämpligt att börja prenumenera på Close lid action eventet :) För detta så kommer ni att behöva en IntPtr. Jag valde att skriva den på ungefär detta sättet(Omskrivet):

_myCallback och _lidSwitch är en IntPtr(D’uh!) och _myCallback är av typen ServiceControlHandlerEx från Win32 klassen.

Nu kommer ni att behöva skriva en Int som jag i detta fallet har kallat för ServiceControlHandler.

Sådär ! Här har ni allt ni behöver för att prenumenera och lyssna på hårdvaru eventet när ni stänger locket på laptopen. Jag hoppas att det kommer till användning för någon :)

Jag märkte dessutom att skriva detta var mycket svårare än vad det såg ut att vara, vilket är jätte bra! Då kanske jag lär mig något mitt i det här.

Min tanke är i alla fall att börja blogga angående saker som jag stöter på och lär mig, så nu återstår väl att se ifall jag är en “Fast learner” ;) Hoppas att läsa detta inte bara var waste of your time :3 Om det skulle vara något, så fråga.

Kommentera mer...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!