굿

프로세스 강제 종료

· 2011-03-17 (목) 11:49:07 · 2245
Option Explicit

Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
Private Const TH32CS_SNAPPROCESS As Long = &H2
Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * 260
End Type
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Const PROCESS_TERMINATE As Long = (&H1)
Private Declare Function TerminateProcess Lib "kernel32.dll" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

Public Function GetPidByImage(ByVal image As String) As Long
On Local Error GoTo ErrOut:
Dim hSnapShot As Long
Dim uProcess As PROCESSENTRY32
Dim r As Long, l As Long

hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)
If hSnapShot = 0 Then Exit Function
uProcess.dwSize = Len(uProcess)
r = Process32First(hSnapShot, uProcess)
l = Len(image)
If l = 0 Then Exit Function
Do While r
If LCase(Left(uProcess.szExeFile, l)) = LCase(image) Then
GetPidByImage = uProcess.th32ProcessID
Exit Do
End If
r = Process32Next(hSnapShot, uProcess)
Loop
Call CloseHandle(hSnapShot)
ErrOut:
End Function

Public Sub KillPID(ByVal pid As Long)
On Local Error Resume Next
Dim h As Long
If pid = 0 Then Exit Sub
h = OpenProcess(PROCESS_TERMINATE, False, pid)
TerminateProcess h, 0
CloseHandle h
Sleep 1000
ErrOut:
End Sub<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 16:46:12 기타에서 이동 됨]</div>
|
댓글을 작성하시려면 로그인이 필요합니다.

개발자팁

5,403건

개발과 관련된 유용한 정보를 공유하세요. 질문은 QA에서 해주시기 바랍니다.

+
분류 제목 글쓴이 날짜 조회
PHP 11-09-23 조회 1,911
JavaScript 11-09-22 조회 1,938
PHP 11-09-22 조회 3,103
기타 11-09-21 조회 2,854
기타 11-09-20 조회 2,733
정규표현식 11-09-19 조회 4,681
기타 11-09-19 조회 2,104
MySQL 11-09-19 조회 8,739
기타 11-09-16 조회 2,714
기타 11-09-14 조회 3,249
MySQL 11-09-09 조회 3,636
PHP 11-09-09 조회 2,635
MySQL 11-09-08 조회 2,833
jQuery 11-09-08 조회 4,273
기타 11-09-08 조회 3,780
기타 11-09-08 조회 2,292
기타 11-09-08 조회 1,720
jQuery 11-09-08 조회 2,304
jQuery 11-09-07 조회 1,986
기타 11-09-07 조회 2,030
JavaScript 11-09-05 조회 3,335
기타 11-09-04 조회 1,873
jQuery 11-09-02 조회 2,709
jQuery 11-09-01 조회 4,078
Flash 11-09-01 조회 4,324
JavaScript 11-08-31 조회 2,364
JavaScript 11-08-31 조회 1,969
JavaScript 11-08-31 조회 1,662
MySQL 11-08-31 조회 3,056
PHP 11-08-30 조회 5,364