1

 
  
  1. Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As LongByVal th32ProcessID As LongAs Long 
  2. Private Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long 
  3. Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long 
  4. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As LongAs Long 
  5. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As LongByVal blnheritHandle As LongByVal dwAppProcessId As LongAs Long 
  6.  
  7. Private Declare Function TerminateProcess Lib "kernel32" (ByVal ApphProcess As LongByVal uExitCode As LongAs Long 
  8.  
  9. Private Type PROCESSENTRY32 
  10.     dwSize              As Long 
  11.     cntUsage            As Long 
  12.     th32ProcessID       As Long 
  13.     th32DefaultHeapID   As Long 
  14.     th32ModuleID        As Long 
  15.     cntThreads          As Long 
  16.     th32ParentProcessID As Long 
  17.     pcPriClassBase      As Long 
  18.     dwFlags             As Long 
  19.     szExeFile           As String * 1024 
  20. End Type 
  21.  
  22. Const TH32CS_SNAPHEAPLIST = &H1 
  23. Const TH32CS_SNAPPROCESS = &H2 
  24. Const TH32CS_SNAPTHREAD = &H4 
  25. Const TH32CS_SNAPMODULE = &H8 
  26. Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE) 
  27. Const TH32CS_INHERIT = &H80000000 
  28. Dim pid As Long 
  29. Dim pname As String 
  30.  
  31. Private Sub taskkill(ByVal taskname As String
  32.     Dim my As PROCESSENTRY32 
  33.     Dim l As Long 
  34.     Dim l1 As Long 
  35.     Dim flag As Boolean 
  36.     Dim mName As String 
  37.     Dim i As Integer 
  38.      
  39.     l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0) 
  40.     If l Then 
  41.         my.dwSize = 1060 
  42.         If (Process32First(l, my)) Then 
  43.             Do 
  44.                 i = InStr(1, my.szExeFile, Chr$(0)) 
  45.                 mName = LCase$(Left$(my.szExeFile, i - 1)) 
  46.                 If mName = LCase$(taskname) Then 
  47.                     pid = my.th32ProcessID 
  48.                     pname = mName 
  49.                     Dim mProcID As Long 
  50.                      
  51.                     mProcID = OpenProcess(1&, -1&, pid) 
  52.                     TerminateProcess mProcID, 0& 
  53.                     flag = True 
  54.                 Else 
  55.                     flag = False 
  56.                 End If 
  57.             Loop Until (Process32Next(l, my) < 1) 
  58.             l1 = CloseHandle(l) 
  59.         End If 
  60.     End If 
  61. End Sub 
  62. '×¢Òâ½ø³ÌÃûÒªÇø·Ö´óСд 
  63.  
  64.  
  65. Private Sub Command1_Click() 
  66. ' 
  67.     Call taskkill("calc.exe")  
  68. End Sub