相关疑难解决方法(0)

如何从进程ID获取主窗口句柄?

如何从进程ID 获取窗口句柄?

我想把这个窗口带到前面.

它在"Process Explorer"中运行良好.

c++ windows winapi windows-7

55
推荐指数
4
解决办法
10万
查看次数

如何获取进程的主线程ID(以其ID名称)?

你能帮我找到ID过程给定的主(唯一)线程ID吗?

任务上下文:正在运行的进程(目前)没有窗口,只有(某些)线程.

通缉:WM_QUIT仅在主线上发布.

不需要:在非主线程上使用TerminateProcess或发布WM_QUIT.

c c++ windows multithreading

6
推荐指数
2
解决办法
8965
查看次数

使用sendmessage将wm_close发送到另一个进程

我想将wm_close发送到另一个进程,并希望通过该进程安全地结束该进程。

int _tmain(int argc, _TCHAR* argv[])
{

    DWORD SetOfPID;
    SetOfPID = GetProcId(_T("abc.exe"));  //this will return pid
    HANDLE h = OpenProcess(PROCESS_ALL_ACCESS,false, SetOfPID);

    HWND hwnd = ::GetTopWindow(NULL);
    while(hwnd)
    {
        DWORD pid;
        DWORD dwThreadId = ::GetWindowThreadProcessId(hwnd, &pid);
         if(pid == SetOfPID)
         {    
              break;
         }
         hwnd = ::GetNextWindow(hwnd, GW_HWNDNEXT);
    }
    //DestroyWindow(hwnd);
    bool temp = IsWindow(hwnd); **//this gives true**
    LRESULT res = ::SendMessage(hwnd, WM_CLOSE, NULL, NULL);
    DWORD err = GetLastError(); **//this gives 6**
    CloseHandle(hwnd);
    CloseHandle(h);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这段代码看起来不错,但是目标进程没有终止,有人可以帮我吗?

c++ windows messaging visual-c++

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×3

windows ×3

c ×1

messaging ×1

multithreading ×1

visual-c++ ×1

winapi ×1

windows-7 ×1