Opdage, om Windows Login Screen er synlig for brugeren i VB.NET

Indlæg af Hanne Mølgaard Plasc

Problem



Hey StackOverflow VB.NET medlemmer,


Efter at have kørt følgende kode (som låser computeren), hvilken kode skal jeg anvende for at se, om brugeren har logget ind på computeren, og at 'Låseskærm' jeg såkaldt er forsvundet?


Private Declare Function LockWorkStation Lib "user32.dll" () As Long

Private Function LockComputer()
    LockWorkStation()
End Function


Jeg vil kalde 'LockComputer', efter hvad skal jeg gøre for at se, om låseskærmen, der kaldes af denne funktion (efter at sige 2 minutter) er forsvundet eller stadig er der, der spørger efter adgangskoden fra brugeren!


Tak,
Akshit Soota

Bedste reference


Tag et kig på dette: http://msdn.microsoft.com/en-us/library/aa376875\%28v=vs.85\%29.aspx[2]


Der står der: Der er ingen funktion, du kan ringe for at afgøre, om arbejdsstationen er låst.


Men:


Hvis du vil modtage underretning, når brugeren logger ind, skal du bruge funktionen WTSRegisterSessionNotification til at modtage WM\_WTSSESSION\_CHANGE meddelelser. Du kan bruge session notifikationer til at spore stationære tilstand, så du ved, om det er muligt at interagere med brugeren.

Andre referencer 1


Har du læst dette i MSDN-dokumentationen af ​​LockWorkstation API: [3]



  Der er ingen funktion, du kan ringe til
  bestemme om arbejdsstationen er
  Låst. For at modtage besked når
  brugeren logger ind, bruger
  WTSRegisterSessionNotification
  funktion til at modtage
  WM\_WTSSESSION\_CHANGE meddelelser.