[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1479
  • Last Modified:

How to detect Windows 2000 workstation is locked/unlocked?

Using: VB.NET 2008 with Framework 2.0
Platform: WIndows 2000 SP4

Error:
Unable to find an entry point named 'WTSRegisterSessionNotification' in DLL 'wtsapi32.dll'.

I need to detect when the user has locked or unlocked their workstation in order to start/stop certain procedures from being called. I have gotten the following code to work on machines running Windows XP or above, but receive the error described if the OS is Windows 2000. Unfortunately, there are still a lot of users that run Windows 2000.

This doesn't throw an error in Windows 2000, but it also doesn't work. :(

Dim SessionSwitchHandler As New SessionSwitchEventHandler(AddressOf PhoneQueueMonitor_SessionSwitch)

Can someone please show me (sample code, please) how to do this on Windows 2000 using VB.NET 2005/2008?
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
' Works in Windows XP and above but not Windows 2000
AddHandler SystemEvents.SessionSwitch, AddressOf SampleForm1_SessionSwitch
End Sub
 
Private Sub SampleForm1_SessionSwitch(ByVal sender As System.Object, ByVal e As SessionSwitchEventArgs)
        If e.Reason = SessionSwitchReason.SessionLock Then
            ' Computer locked
            Console.WriteLine("Workstation locked at: " & Now)
        ElseIf e.Reason = SessionSwitchReason.SessionUnlock Then
            ' Computer unlocked
            Console.WriteLine("Workstation unlocked at: " & Now)
        End If
    End Sub

Open in new window

0
blitzzy
Asked:
blitzzy
  • 4
  • 3
1 Solution
 
melmersCommented:
WTSRegisterSessionNotification is only supported by XP and Vista.

Have you tried to build it on a win2k machine ?
0
 
blitzzyAuthor Commented:
Hi melmers,

Yes, I have tried to run the program on a Windows 2000 machine. That's when I get that error on load. If WTSRegisterSessionNotification is not supported on Windows 2000, then how can I get the same functionality?
0
 
melmersCommented:
a quick goolge have bring me this site where is an example


http://www.codeproject.com/KB/vb/DetectWindowslockunlock.aspx

But i don't know if it works with Win2k because i have no win2k pc
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
blitzzyAuthor Commented:
I've seen this example before. It's so complicated! I tested it but it doesn't seem to work on 2000.
0
 
melmersCommented:
are there any errors ?
0
 
blitzzyAuthor Commented:
I've played around with and made modifications tothe code in the link that you sent me and finally got it to work.
0
 
blitzzyAuthor Commented:
Provided useful information and code sample that required modification. Thanks for the help.
0

Featured Post

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now