您的位置:首页 > 编程语言 > VB

VB利用进程句柄挂起恢复进程

2007-09-30 14:16 204 查看
VERSION 5.00
Begin VB.Form frmMain
   Caption         =   "Form1"
   ClientHeight    =   3090
   ClientLeft      =   60
   ClientTop       =   450
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   ScaleHeight     =   3090
   ScaleWidth      =   4680
   StartUpPosition =   3  '窗口缺省
   Begin VB.CommandButton cmdTerminate
      Caption         =   "终止该进程"
      Height          =   375
      Left            =   3240
      TabIndex        =   3
      Top             =   1920
      Width           =   1335
   End
   Begin VB.CommandButton cmdClose
      Caption         =   "关闭句柄"
      Height          =   495
      Left            =   1920
      TabIndex        =   2
      Top             =   1800
      Width           =   1335
   End
   Begin VB.TextBox txtPid
      Height          =   495
      Left            =   720
      TabIndex        =   1
      Text            =   "123"
      Top             =   480
      Width           =   1695
   End
   Begin VB.CommandButton cmdResume
      Caption         =   "恢复进程"
      Height          =   495
      Left            =   120
      TabIndex        =   0
      Top             =   1800
      Width           =   1815
   End
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Const SYNCHRONIZE = &H100000
Private Const STANDARD_RIGHTS_REQUIRED = &HF0000
Private Const PROCESS_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF)
Private Declare Function NtSuspendProcess Lib "ntdll.dll" (ByVal hProc As Long) As Long
Private Declare Function NtResumeProcess Lib "ntdll.dll" (ByVal hProc As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private hProcess As Long

Private Sub cmdClose_Click()
    CloseHandle hProcess
End Sub

Private Sub cmdResume_Click()
    If IsNumeric(txtPid.Text) Then
        hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, CLng(txtPid.Text))
        If hProcess <> 0 Then
            NtResumeProcess hProcess
        End If
    End If
End Sub

Private Sub cmdTerminate_Click()
    If hProcess Then
        TerminateProcess hProcess, 0
    Else
        If IsNumeric(txtPid.Text) Then
            hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, CLng(txtPid.Text))
            If hProcess <> 0 Then
                TerminateProcess hProcess, 0
            End If
        End If
    End If
End Sub
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vb function access