• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 488
  • Last Modified:

Lock the workstation on a windows machine


i'm trying to come by some code to help me lock the workstation from the program i'm developing for windows machines (2000 and xp)

i know there is an API, but i think i don't have it, for example i tried this:
#include <windows.h>
#include <stdio.h>
int main()
                                  printf ("error: could not lock workstation:  %d\n", GetLastError());
                        return 0;

according to msdn LockWorkStation() is included on windows.h, but not VC 5, nor GCC (mingw or cygwin) can find it.

another thing i tried is to find something similar to this:


that will lock the workstation by activating the screensaver. everything is fine, only i just want to lock the computer without the screensaver. so maybe there is a parameter other than SC_SCREENSAVE that i can pass onto SendMessage.

the last thing i know of is the rundll trick of locking the Workstation by calling user32.dll or something, but again, there must be a better way

any ideas?

any help will be appreciated.
  • 3
1 Solution
To make the work, you need a newer SDK which contains the header and lib-files.
You need install VC7 or try this one

urifAuthor Commented:
hmmm, thanks but i dont think that installing a 266mb sdk for one function is a solution. at least not at this point.

thanks so much anyway

any other ideas?
>>any other ideas?

Load the entrypoint dynamically:

typedef BOOL (*FPTR_LockWorkStation)(VOID);

HINSTANCE hDll = LoadLibrary( "user32.dll");

FPTR_LockWorkStation pLockWorkStation = (FPTR_LockWorkStation) GetProcAddress (hDll,"LockWorkStation");


FreeLibrary (hDll);
urifAuthor Commented:
it still returns as undeclared identifier: _LockWorkStation();
urifAuthor Commented:
ok for anyone that searched the solution:

#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <winuser.h>

so you only have to add winuser.h

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

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