请教!

解决方案 »

  1.   

    函数定义我没加,自己找找加上吧! Dim uSnapShot As Long '系统快照返回值
    Dim uResult As Long '遍历进程返回值
    Dim uProcess As PROCESSENTRY32 '定义进程结构变量
    Dim meHandle As Long '进程句柄uSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&) '建立系统快照
    uProcess.dwSize = Len(uProcess) '初始化进程信息长度If uSnapShot Then
        uResult = Process32First(uSnapShot, uProcess) '取得第一个进程
        Do While uResult
         
          If InStr(Left(uProcess.szexeFile, InStr(uProcess.szexeFile, Chr(0)) - 1), "QQ.exe") > 0 Then
            meHandle = OpenProcess(PROCESS_ALL_ACCESS, True, uProcess.th32ProcessID)
            'meHandle中就是你想要的QQ的句柄
          End If
        uResult = Process32Next(uSnapShot, uProcess) '取得快照中的下一个进程
        Loop
    End If这个例子表示从进程里得到比如说QQ.exe的句柄,可以用来检测程序是否运行
    键盘检测需要Hook
      

  2.   

    谢谢 cso(sjxsoft-天水是我家) ( ) 信誉:110  2004-08-20 02:07:00  得分: 0  大侠的指点!!请教:A软件怎么对B软件键盘输入进行监控????????????
      

  3.   

    键盘检测需要Hook
    但不是针对性的,他会将所有程序的键盘操作都会记录下来的,如果是针对性的,可以实时用GetForegroundWindow 获得前台窗口的句柄
      

  4.   

    VB做低级键盘钩子才可以,但是有一定难度,vb实现全局钩子有一定危险性,还有一种方法就是用api,但是并不准确,有时会漏掉一些
    Public Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer弄个定时器,把时间间隔弄成50,循环使用,关于详细使用方法请参见其他资料
    到www.allapi.net去是不错的选择,有例子
      

  5.   

    google 全局键盘钩子
    很简单的东西做这个东西不要用VB
    MSDN里面现成的C代码编译一下就可以用了包括枚举进程/钩子