2012-12-06 2 views
11

가능한 중복 :
Lock Windows workstation programmatically in C#어떻게 Windows 워크 스테이션을 프로그래밍 방식으로 잠글 수 있습니까?

나는 현재 워크 스테이션을 잠그는 기능을 필요로하는 비주얼 스튜디오 윈도우 폼 응용 프로그램에서 일하고 있습니다. 함수를 호출 할 때 user32.dll을 사용하여 잠금 (Windows + L)을 수행 할 수 있습니까?

+0

내가 관리 솔루션을 요구하고있다 게시 한 속는 사람을 부르지 만, 비 관리 솔루션은 질문 자체 :) –

+0

이 중복되지 않음에 게시되면, 가능한 복제본이 솔루션을 제공하지 않습니다! –

+0

대답은 질문에 – spender

답변

28

는 내가 직접 시도하지 않은,하지만 난 편집 Process.Start(@"C:\WINDOWS\system32\rundll32.exe", "user32.dll,LockWorkStation");

구글

this을 발견 : 나는 그것을 시도하고 작동한다!

edit2 : solution은 외부 프로세스를 시작하지 않는 user32.dll을 사용합니다.

using System.Runtime.InteropServices;

이 같은 방법을 선언

[DllImport("user32.dll")] 
public static extern bool LockWorkStation(); 

다음 LockWorkStation();를 호출합니다.

자보세요

+0

예, 중복 질문은 귀하의 천재 솔루션을 제공하지 않습니다! –

+0

+1. user32.dll을 사용하고, 확인하고, 워크 스테이션을 잠그고, 확인합니다. 네, 도움이 될 것 같습니다. 그러나 이에 대한 하위 프로세스를 시작하면 예기치 않은 상황이 발생할 수 있습니다. 누가 알아. =) –

+0

Psst. ** ** "중복"질문에서 복사 한 경우 원래 작성자의 이름을 입력하십시오. =) –

0
using System.Runtime.InteropServices; 


[DllImport("user32.dll")] 
public static extern int ExitWindowsEx(int uFlags, int dwReserved); 

단지

ExitWindowsEx(0, 0); 
+0

이렇게하면 사용자를 로그 오프 한 것처럼 보이고 필요에 따라 워크 스테이션을 잠글 수 없습니다. – Iridium

+0

이런 식으로 워크 스테이션을 잠그고 사용자 선택 화면으로 사용자를 보냅니다. 단점은 사용자가 모든 작업을 풀어 버릴 것이라는 점입니다. – TheLegendaryCopyCoder

관련 문제