请问例如a程序正在运行,如何才能在b程序运行的同时a检测到b的运行状况:如b已开始运行、b程序已经运行多长时间?谢谢

解决方案 »

  1.   

    a程序启动后,在定时器事件里面不停用FindWidow函数检测b程序是否存在,同时就可以记录下运行时间了。
    但如果b程序在a程序之前启动,那么之前的运行时间就没法检测了,只能从a程序启动之后开始计算。
    以下是FindWidow函数的使用实例:
    Option Explicit
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Const WM_CLOSE = &H10Private Sub Command1_Click()
        Dim hWindow As Long    hWindow = FindWindow(vbNullString, "CSDN.NET - 中国最大的开发者网络,为开发人员和相关企业提供全面的信息服务和技术服务 - Microsoft Internet Explorer")
        If hWindow Then
            PostMessage hWindow, WM_CLOSE, 0&, 0&
        End If
    End Sub
      

  2.   

    自定义消息,当b启动时找到a,向a发消息。
    总之就是消息机制。
    我是这样想的,不知道其他人有何高见。   :)
      

  3.   

    要检测b程序已运行多长时间只有在b程序本身开始运行时做标记
    类似优化大师检测windows已运行多长时间
      

  4.   

    在知道WIN运行了多长时间?
    【VB声明】
      Private Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long【说明】
      用于获取自windows启动以来经历的时间长度(毫秒) 【返回值】
      Long,以毫秒为单位的windows运行时间