Jak sprawdzić czy użytkownik zablokował ekran?

0

Użytkownik blokuje/odblokowywuje stację np. używając windows + L
Jaki jest sposób, aby w dowolnym momencie uzyskać informację (stan) czy ekran jest zablokowany, czy nie?

Znam sposób chwytania eventów, które lecą przy blokadzie/odblokowaniu. Ale to tylko działa, jeżeli ja ten event przechwycę. Mnie chodzi o skuteczny sposób odpytania o stan zablokowany/odblokowany.

Na necie są propozycje: zrzut ekranu zawsze będzie czarny gdy zablokowany, pozycja myszki zawsze jest x,y=0,0, ale te sposoby są nieskuteczne, przynajmniej w win 10.

0
AdamWox napisał(a):

Checking for workstation lock/unlock change with c#

No tak - ale tak jak pisałem to jest oparte na eventach.
Jak event nie chwycę to koniec. Chodzi o metodę by w dowolnej chwili można determinować czy stacja jest zablokowana czy nie.

1

Co to znaczy Jak event nie chwycę to koniec? Albo chcesz uchwycić moment zablokowania, albo nie. Te całe SystemEvents_SessionSwitch wywoła się zawsze kiedy coś się stanie z tą sesją i między innymi kiedy user zrobi windows + L... Robiąc w kodzie

Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents_SessionSwitch);

już chwytasz event

0
AdamWox napisał(a):

Co to znaczy Jak event nie chwycę to koniec? Albo chcesz uchwycić moment zablokowania, albo nie. Te całe SystemEvents_SessionSwitch wywoła się zawsze kiedy coś się stanie z tą sesją i między innymi kiedy user zrobi windows + L... Robiąc w kodzie

Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents_SessionSwitch);

już chwytasz event

No sam to napisałeś - jeżeli coś się stanie z sesją to przechwytujesz zdarzenie.
Tak jak pisałem w poście: mnie zależy na odpytaniu stanu a nie zdarzeniach poniewaz nie mam gwarancji przechwycenia zdarzenia. jeżeli mój soft będzie się restartował, a w tym czasie user zablokuje ekran to mi ten event ucieknie. Dlatego potrzebuję rozwiązania 'on demand'. Czyli ja odpytuję o stan lub jakoś go determinuje a nie, że ktoś mnie o tym informuje.

1
abrakadaber napisał(a):

https://brutaldev.com/post/checking-if-the-workstation-is-locked

Post jest z 2008 a jego updatowana wersja z 2012. Ludzie na stacku piszą, że na win 10 nie działa niestety :(

0

Ok, czyli potrzebujesz obie opcje. Sprawdzić stan na start aplikacji i event, o którym ja pisałem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1