.net - Opbygning af en brugerdefineret låseskærm (og pauseskærm) til Win7 og derover

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en klient, der bruger Windows-stationære computere, der er 'altid på', og som er tilgængelige for flere brugere, der interagerer med de samme programinstanser. (For nemheds skyld kan du forestille dig et proprietært sudoku-spil, der ikke understøtter opsparing og flere personer, der løser sudoku, en ad gangen.) Logging on og off er ikke en mulighed, da dette ville bringe op med kørende applikationer. Nej, vi kan ikke gøre noget ved denne opsætning, så der er ingen mening i at komme med en bedre løsning. Dette er et hårdt klientbehov.


For at forbedre sikkerheden (som brugte computeren på et givet tidspunkt), ville de gerne implementere deres egen 'låsemekanisme'. Skærmen skal automatisk låses efter en given tid (10 minutter eller deromkring), som en pauseskærm. Denne 'låseskærm' bør også erstatte den indbyggede Windows låseskærm, så du skal kunne aktivere den ved hjælp af Win+L osv.
Det skal også være halvtransparent (jeg håber, at vi ikke har brug for DirectX eller andre fancy ting til dette).


For at 'låse op' skærmen skal du indtaste din aktive mappeinformation (domæne/brugernavn/kodeord), som vil blive skrevet til en logfil. Da vi ikke ønsker at ændre den logget på bruger, tror jeg, at en brugerdefineret referencer er ikke, hvad vi leder efter.


Fra min forskning ser det ut til at vi skal gøre, at deaktivere den indbyggede Windows-låseskærm i registreringsdatabasen og skrive en brugerdefineret screensaver, der vil fordoble som låseskærmen. Med den indbyggede låseskærm er deaktiveret, niveau globalt tastaturkrog skal kunne fange Win+L, højre? Fra det tastaturkrog kunne vi starte pauseskærmen.


Disse ting skal arbejde på maskiner, der kører Windows 7 og nyere.
Jeg føler mig mest behagelig at udvikle i C #, men C ++ er også fint.


Ser du eventuelle potentielle faldgruber med denne tilgang?
Enhver bedre ide hvordan man bygger dette?

Bedste reference