본문 바로가기

VB.NET

[VB.NET] PC 재부팅 소스


reboot_api.exe 첨부파일


DOS 명령어를 이용해 간단하게 재부팅 기능을 구현할 수 있습니다.

shutdown.exe 파일인데요... 우리가 가끔 DOS에서 이용하는 외부명령어 입니다.


내부명령어와, 외부 명령어는 잘 아시죠?


CLS, DIR, COPY...등은 내부 명령어,,,

XCOPY, FDISK, CHKDSK, SHUTDOWN 과 같은 명령어(엄밀히 말하면, DOS 파일명)등은 실행파일로 돌아가는

외부 명령어로 구분지어집니다.


십년도 넘은 기억이라 새롭네요.ㅎㅎㅎ 

18년전까지만 해도(Windows95 출시전)활발하게 사용하던 명령어들입니다.

shutdown은 Win2000 버전부터 추가된 명령어입니다.


구현방법은 간단합니다.

shutdown /r /t 0 이라고 명령어를 입력하면 됩니다.

옵션설명 

/r : 다시시작하라

/t : 시간을 나타냅니다.  값을 0을 주게 되면 즉시 실행하라는 뜻이죠.

/s : 시스템 종료를 나타닙니다.


*기본적으로  /t 옵션을 사용하지 않으면 30초 이후 실행하는 것으로 간주됩니다.

 

폼박스에 버튼1,2,3 을 만들고 아래와 같이 코딩하면 됩니다.


Public Class Form1

    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)

        If e.KeyCode = Keys.Escape Then

            Me.Close()

        End If

    End Sub

 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim a As Integer

        a = MsgBox("재부팅 하시겠습니까?", vbYesNoCancel + vbExclamation, "알림!")

        If a = vbYes Then

            Shell("C:\Windows\System32\shutdown.exe /r /t 0")

        ElseIf a = vbNo Then

            '

        ElseIf a = vbCancel Then

            '

        End If

    End Sub

 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim a As Integer

        a = MsgBox("PC 종료 하시겠습니까?", vbYesNoCancel + vbExclamation, "알림!!")

        If a = vbYes Then

            Shell("c:\windows\system32\shutdown.exe -s -t 0")

        ElseIf a = vbNo Then

            '

        ElseIf a = vbCancel Then

            '

        End If

    End Sub

    Private Sub Button3_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        End

    End Sub

End Class

 

 

실행화면입니다.


 

사용목적은 사용자의 활용하기에 따라 달라지겠지만,,,

저같은 경우, 원격데스크탑을 주로 사용합니다.


이때 문제점이... 재부팅이 필요할때 가장 불편합니다.

원격으로는 pc재부팅이 힘듭니다.

재부팅 또는 종료할 수 있는 기능이 생략됩니다.



시스템종료 또는 재부팅 버튼이 있어야 할 자리에, 연결끊기가 있죠?


이래서 항상 도스에서 shutdown -r -t 0 이러한 명령을 입력해야 해서

단순하게 몇줄로 귀차니즘을 해결 할 수 있습니다.ㅎㅎㅎ


코드 활용도에 따라서 이걸 응용하면, 알람pc를 만들 수 있습니다.

몇시 몇분에 PC 종료하기, 재부팅하기,,, 등등

약간의 테크닉만 발휘한다면 시스템 로그를 통한, 몇시몇분에 PC를 켰고 종료 했는지 로그정보를 계속 저장하여

PC런타임 통계도 가능하겠죠?ㅎㅎ


'VB.NET' 카테고리의 다른 글

VB.NET 복사 & 붙여넣기 한글 깨짐 현상 해결 방법  (1) 2013.05.14
[VB.NET] USB드라이브 찾기  (0) 2013.04.05