在一个程序中不使用Hook, 检测全局键盘鼠标的消息,有这样的API吗

解决方案 »

  1.   

    DirectX  DirectInput 可以监控鼠标状态和轨迹 消息没办法
      

  2.   

    想使用GetLastInputInfo()
    while (true)
    {
    GetLastInputInfo(A);
    Sleep(50);
    }
    // 为何A的值一直在变化(上面的语句在另一个线程中)
      

  3.   

    shit...是我鼠标问题...拔掉之后A就不变了..
      

  4.   

    LASTINPUTINFO lii; memset(&lii, 0, sizeof(LASTINPUTINFO));
    lii.cbSize = sizeof(LASTINPUTINFO);
    if (GetLastInputInfo(&lii))
    {
    TRACE(_T("%d"), lii.dwTime);// 这里的值一直在变, 是我鼠标问题, 一直有MOUSEMOVE消息 }
      

  5.   

    // 搞定
    DWORD WINAPI DetectKBMThread( LPVOID lpParam)
    {
    LASTINPUTINFO lii;
    DWORD dwLastTick = 0; memset(&lii, 0, sizeof(LASTINPUTINFO));
    lii.cbSize = sizeof(LASTINPUTINFO);
    if (GetLastInputInfo(&lii))
    {
    dwLastTick = lii.dwTime;
    } while ( true )
    {
    if (GetLastInputInfo(&lii))
    {
    if (dwLastTick != lii.dwTime)
    {
    TRACE(_T("dwTime = %d"), lii.dwTime);
    exit(0);
    break;
    }
    } Sleep(100);
    } return 0;
    }