SA_BLOG

[비주얼베이직] API를 이용하여 시스템 종료하기 본문

프로그래밍/비주얼베이직

[비주얼베이직] API를 이용하여 시스템 종료하기

wooty9 2015. 1. 22. 23:22

네이버 지식인 1:1 질문이 와서 API를 이용한 시스템 종료에 대해 알아보았다.

내가 찾은 방법은 2가지 이다.

1. ExitWindowsEx

2. InitiateSystemShutdown

위 2가지 API를 사용하기 위해서 NT계열은 시스템 종료를 위한 권한이 필요한데 권한을 얻는 방법은

(http://slaner.tistory.com/61)에서 알 수 있다.

----------------------------------------------------------------------------------

[VB]_시스템종료API_예제.zip

# 이 프로젝트파일은 VS 2013 Community 버전에서 만들어 졌습니다.

# 닷넷프레임워크 4.5 이상 설치되어 있어야 합니다.

----------------------------------------------------------------------------------

 

# ExitWindowsEx

- 사용할 수 있는 상수목록 -

1. EWX_LOGOFF = 0    // 로그오프

2. EWX_SHUTDOWN = 1  // 시스템 종료

3. EWX_REBOOT = 2  // 다시 시작

4. EWX_FORCE = 4 // 모든 윈도우를 닫고 시스템 종료

5. EWX_POWEROFF = 8  // 시스템을 종료하고 전원을 내림. (시스템 종료는 다 똑같아 보입니다. 제가 보기에는..)

(함수)

Private Declare Function ExitWindowsEx Lib "user32.dll" ( _
  ByVal uFlags As Int32, _
  ByVal dwReserved As Int32) As Int32

(사용 예)

ExitWindowsEx(EWX_SHUTDOWN, 0)

 

# InitiateSystemShutdown

(함수)

Private Declare Function InitiateSystemShutdown Lib "advapi32.dll" Alias "InitiateSystemShutdownA" ( _
  ByVal lpMachineName As String, _
  ByVal lpMessage As String, _
  ByVal dwTimeout As Int32, _
  ByVal bForceAppsClosed As Int32, _
  ByVal bRebootAfterShutdown As Int32) As Int32

(사용 예)

InitiateSystemShutdown(Environment.MachineName(), vbNullString, 0, False, False)

 

Comments