GetWindowThreadProcessID()得到的是线程ID,和进程ID是两码事

解决方案 »

  1.   

    谁说的?GetWindowThreadProcessID()当然是得到进程ID.
      

  2.   

    怎么我, 调用两个函数所得的进程ID是一样的, 另外, GetWindowThreadProcessID既可得到创建指定窗口的线程ID, 也可得到创建指定窗口的进程ID.
      

  3.   

    我也是一样的,我想你的window是在子线程中创造的吧,GetWindowThreadProcessId返加
    ThreadID和ProcessID,你获取的是ThreadId
      

  4.   

    你可以借助Spy++看一下怎么回事
      

  5.   

    进程是唯一的,而线程是分主线程和副线程的你得到的是进程的ID和当前的运行线程ID.
      

  6.   

    HWND m_hDest = NULL;
    HANDLE m_hSpy = NULL;
    if((m_hDest = ::FindWindow (NULL, "WindowTitlName")) != NULL)
    {
    DWORD dwProcessId; GetWindowThreadProcessId(m_hDest, &dwProcessId);
    m_hSpy = ::OpenProcess (PROCESS_DUP_HANDLE, FALSE, dwProcessId);
              }
      

  7.   

    sorry ! 我发了两次
    因为回复页面老是提醒发送贴子失败.
    ;(
      

  8.   

    GetWindowThreadProcessID 可返回指定窗口的线程ID,请注意接收
      

  9.   

    进程运行自动创建一个主线程,我得到的是主线程的ID,与进程ID不一样,应该如何得到进程ID呢?
      

  10.   

    先用GetActiveWindow()得到活动窗口的句柄,然后就可以了。你看看MFC的源码,窗口运行时创建主线程,不是进程