' 버튼을 클릭하면 메모장을 실행시키고, 메모장이 종료되면 계산기를 실행시키는 소스
Option Explicit
'메인 프로세스 오브젝트 핸들링
Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
'지정한 프로세스 오브젝트 핸들링
Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) As Long
'열러있는 프로세스 오브젝트 핸들링 해제
Private Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
Private Const PROCESS_QUERY_INFORMATION = &H400&
Private Const STILL_ACTIVE = &H103&
Private Sub ShellEnd(ProcessID As Long)
Dim hProcess As Long
Dim EndCode As Long
Dim EndRet As Long
'핸들을 가져옴
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 1, ProcessID)
'종료할 때까지 대기
Do
EndRet = GetExitCodeProcess(hProcess, EndCode)
DoEvents
Loop While (EndCode = STILL_ACTIVE)
'핸들을 닫음
EndRet = CloseHandle(hProcess)
End Sub
Private Sub Command1_Click()
'메모장을 실행하고, 종료되면 계산기를 실행
Dim Ret1 As Long
Dim Ret2 As Long
Ret1 = Shell("C:\windows\system32\notepad.exe", 1)
ShellEnd (Ret1) '종료할때까지 대기
Ret2 = Shell("C:\windows\system32\CALC.EXE", 1)
ShellEnd (Ret2) '종료할때까지 대기
End Sub
테스트용 카운트 실행파일 첨부(10초동안 실행됨)
'개발 > .Net' 카테고리의 다른 글
[VBScript] 다음(Daum) 자동로그인 스크립트 만들기 (2) | 2012.03.01 |
---|---|
[VBScript] 네이버 자동로그인 스크립트 만들기 (3) | 2012.03.01 |
[VB6→VB.NET] 문자열 형식 변경(Format) (0) | 2011.01.21 |
[VB6→VB.NET] 구조체 안에 배열선언 (0) | 2011.01.20 |
[VB6→VB.NET] 사이즈 단위 변화 (Height, Width→Size / Left, Top→Location) (0) | 2011.01.05 |
[VB.NET] ComboBox (0) | 2010.12.17 |
[VB.NET] 픽쳐박스에 이미지파일을 표시후 바로 삭제하는 방법 (0) | 2010.12.17 |
[VB6→VB.NET] ListView (0) | 2010.12.16 |
[VB.NET] Form 명령어 (0) | 2010.12.16 |
[VB6→VB.NET] 배경색 변경 (0) | 2010.12.16 |