Windows 7에서 화면을 잠글 때 프로그램을 자동으로 종료하려면 어떻게 해야 합니까?

Windows 7에서 화면을 잠글 때 프로그램을 자동으로 종료하려면 어떻게 해야 합니까?

화면을 잠글 때마다 Windows 7에서 프로그램을 자동 종료하는 방법이 있습니까?

답변1

Grawity의 제안에 따르면,내가 넣은 배치파일을 사용하지 마세요이 답변의 끝에서. 이 때문입니다rundll32.exe 하지 않습니다Win32 API 함수 의 호출 규칙과 일치합니다 LockWorkStation(참조:이 MSDN 블로그 항목자세한 내용은). 즉, 너무 많은 작업을 수반하지 않는 더 나은 대안이 있습니다.

당신은 사용할 수 있습니다AutoIt 스크립팅 언어그리고DllCall호출 스택을 손상시키지 않고 Win32 API 함수를 호출하는 함수입니다. 다음을 사용할 수도 있습니다.ProcessClose대신에 TASKKILL. 참고로,여기는LockWorkStationMSDN에서 참조하세요.

다음 두 줄을 파일에 넣고 다른 exitandlock.au3이름(또는 유사한 이름)으로 저장합니다. 그런 다음 AutoIt을 사용하여 실행할 수 있습니다(원하는 경우 .exe로 컴파일할 수도 있음).

ProcessClose("yourapp.exe")
DllCall("user32.dll", "BOOL", "LockWorkStation")

호출 스택을 손상시키지 않고 원하는 것을 제공해야 합니다. 그런 다음 해당 파일을 단축키에 바인딩하고 이를 사용하여 워크스테이션을 잠글 수 있습니다. 또는 .exe 파일로 컴파일하고 컴퓨터가 비활성화된 후에 예약된 작업으로 실행되도록 설정할 수 있습니다.

마지막으로WinClose의 대안으로 기능합니다 ProcessClose.


내가 말했듯이, 제발이 방법을 사용하지 마세요. 이는 인터넷에서 가장 널리 사용되는 방법 중 하나이므로 완전성을 위해 여기에 보관합니다. 다음 명령을 사용하여 간단한 배치 파일을 사용하여 이 작업을 수행할 수 있습니다 TASKKILL.

@ECHO OFF
TASKKILL /IM yourapp.exe
Rundll32.exe User32.dll,LockWorkStation

그런 다음 워크스테이션을 잠그고 싶을 때 배치 파일을 실행하면 됩니다. 또는 배치 파일을 실행하기 위해 단축키를 할당한 다음 잠그고 싶을 때 해당 키 조합을 누르기만 하면 됩니다. 명령 에 대한 자세한 내용은 TASKKILL다음을 참조하세요.이 기사는 Microsoft에서 제공한 것입니다..

답변2

1단계: 프로그램을 종료하는 스크립트 작성

terminate.vbs다음 내용으로 이름이 지정된 파일을 만듭니다 .

set objwmiservice = getobject("winmgmts:\\.\root\cimv2")
strprocessname = wscript.arguments.item(0)
strquery = "select * from win32_process where name='" & strprocessname & "'"
set colitems = objwmiservice.execquery(strquery,,48)
for each objitem in colitems
    objitem.terminate
next

명령 프롬프트를 열고 를 실행하여 이 스크립트를 테스트합니다 cscript.exe "C:\path\to\terminate.vbs" notepad.exe. notepad.exe종료하려는 프로세스 이름으로 바꾸십시오 .

2단계: 화면을 잠글 때 실행할 스크립트 예약

열려 있는작업 스케줄러(시작 메뉴에서 검색할 수 있습니다.) 마우스 오른쪽 버튼을 클릭하세요.작업 스케줄러 라이브러리그리고 선택작업 생성.... 에일반적인탭에서 작업의 이름과 설명을 지정하세요. 당신은 변경할 수 있습니다구성:에게윈도우 7, 윈도우 서버 2008 R2원한다면 그럴 필요는 없습니다.

작업 생성 - 일반 탭

트리거탭에서 새 트리거를 생성하고 설정하세요.작업을 시작합니다.에게워크스테이션 잠금 시. 나머지 기본 설정은 괜찮습니다.

작업 생성 - 새 트리거

행위탭에서 다음 작업을 수행할 새 작업을 만듭니다.프로그램 시작.프로그램/스크립트:해야한다cscript.exe. terminate.vbs종료하려는 프로세스 의 경로와 이름을 입력하세요.인수 추가(선택 사항):상자. 내 주장은"C:\Users\Public\Documents\terminate.vbs" notepad.exe

작업 생성 - 새 작업

당신은 확인할 수 있습니다정황그리고설정더 많은 옵션을 보려면 탭을 클릭하세요. 하지만 여기서는 그 어느 것도 필요하지 않습니다. 작업을 저장하면 완료됩니다. 화면을 잠그면 프로세스가 종료됩니다.

화면을 잠근 후 빠르게 잠금을 해제하면 명령 프롬프트 창이 표시되거나 종료하려는 프로세스가 여전히 종료되는 중에 표시될 수 있습니다. 이는 프로세스가 정상적으로 종료되는 데 걸리는 시간에 따라 다릅니다.

답변3

WTSRegisterSessionNotification()기다리는 데 사용하는 프로그램을 작성할 수 있습니다 .WTS_SESSION_LOCK이벤트를 진행하고 필요한 작업을 수행합니다.

예는 다음에서 찾을 수 있습니다.https://superuser.com/a/264973/1686

관련 정보