第11期的《程序员》上面有!

解决方案 »

  1.   


    第11期的《程序员》上面有!
      

  2.   

    看看它有没有呼吸和脉搏,呵呵
      

  3.   

    Option Explicit'这个程序使用来判断其它程序是否失去响应.
    '首先建立新工程,在窗体上放置三个CommandButton,将NAME属性设为 cmdLauch\cmdKill\cmdCheck
    '运行程序,点击 cmdLauch 可以执行浏览器程序,点击 cmdKill 检测程序是否失去响应,点击 cmdCheck 关闭程序.
    Private Const SMTO_ABORTIFHUNG = &H2
    Private Const SMTO_BLOCK = &H1
    Private Const WM_CLOSE = &H10
    Private Const WM_NULL = &H0
    Private Const STANDARD_RIGHTS_REQUIRED = &HF0000
    Private Const SYNCHRONIZE = &H100000
    Private Const PROCESS_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF)Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Private Declare Function SendMessageTimeout Lib "user32" Alias "SendMessageTimeoutA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long
    Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As LongPrivate modObjIE As Object
    Private modlngWndIE As LongPrivate Sub cmdCheck_Click()    Dim lngResult As Long
        Dim lngReturnValue As Long
        
        lngReturnValue = SendMessageTimeout(modlngWndIE, WM_NULL, 0&, 0&, SMTO_ABORTIFHUNG And SMTO_BLOCK, 1000, lngResult)
        
        If lngReturnValue Then
            MsgBox "程序运行正常"
        Else
            MsgBox "程序失去响应"
        End If
        
    End SubPrivate Sub cmdKill_Click()    Dim lngProcessID As Long
        Dim lngReturnValue As Long
        Dim lngProcess As Long
        
        lngReturnValue = GetWindowThreadProcessId(modlngWndIE, lngProcessID)
        lngProcess = OpenProcess(PROCESS_ALL_ACCESS, 0&, lngProcessID)
        lngReturnValue = TerminateProcess(lngProcess, 0&)End SubPrivate Sub cmdLauch_Click()
        
        Set modObjIE = Nothing
        Set modObjIE = CreateObject("InternetExplorer.Application")
        modObjIE.Visible = False
        modObjIE.Navigate2 "http://www.microsoft.com"
        modlngWndIE = modObjIE.hwnd
        
    End Sub
      

  4.   

          老哥,你的分还在路上么?
      

  5.   


          完啦,又一个“格朗台”!!