LockWorkStation function
Applies to: desktop apps only
Locks the workstation's display. Locking a workstation protects it from unauthorized use.
Syntax
BOOL WINAPI LockWorkStation(void);
Parameters
This function has no parameters.
Return value
If the function succeeds, the return value is nonzero. Because the function executes asynchronously, a nonzero return value indicates that the operation has been initiated. It does not indicate whether the workstation has been successfully locked.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
The LockWorkStation function is callable only by processes running on the interactive desktop. In addition, the user must be logged on, and the workstation cannot already be locked.
Common reasons the workstation might not be locked even if the function succeeds include the following: no user is logged on, the workstation is already locked, the process is not running on the interactive desktop, or the request is denied by the Graphical Identification and Authentication (GINA) DLL.
This function has the same result as pressing Ctrl+Alt+Del and clicking Lock Workstation. To unlock the workstation, the user must log in. There is no function you can call to determine whether the workstation is locked. To receive notification when the user logs in, use the WTSRegisterSessionNotification function to receive WM_WTSSESSION_CHANGE messages. You can use session notifications to track the desktop state so you know whether it is possible to interact with the user.
Examples
For an example, see How to Lock the Workstation.
Requirements
|
Minimum supported client | Windows 2000 Professional |
|---|---|
|
Minimum supported server | Windows 2000 Server |
|
Header |
|
|
Library |
|
|
DLL |
|
See also
Send comments about this topic to Microsoft
Build date: 2/3/2012
Private Declare Function LockWorkStation Lib "user32" () As Long
- 4/24/2012
- Karl Peterson
- 4/24/2012
- Karl Peterson
- 4/24/2012
- Karl Peterson
public static class Environment2
{
/// <summary>
/// Locks the workstation's display. Locking a workstation protects it from unauthorized use.
/// </summary>
/// <returns>
/// If the function succeeds, the return value is true. Because the function executes asynchronously, a true return value indicates that the operation has been initiated. It does not indicate whether the workstation has been successfully locked.
/// If the function fails, the return value is false. To get extended error information, call GetLastError.
/// </returns>
[DllImport("User32.Dll", EntryPoint = "LockWorkStation"), Description("Locks the workstation's display. Locking a workstation protects it from unauthorized use.")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool LockWorkStation();
/// <summary>
/// Locks the workstation's display. Locking a workstation protects it from unauthorized use.
/// </summary>
/// <exception cref="Win32Exception">if the lock fails more information can be found in this Exception class</exception>
public static void LockWorkstation()
{
if (!LockWorkStation())
throw new Win32Exception(Marshal.GetLastWin32Error());
}
}
- 9/23/2010
- Paw Jershauge
<DllImport("user32.dll")> _
Public Shared Function LockWorkStation() As Boolean
End Function