在Windows用C++下打开进程,并置顶
时间: 2024-03-23 09:41:24 浏览: 36
要在 Windows 下用 C++ 打开进程并置顶窗口,你可以使用 `CreateProcess` 函数打开进程,并使用 `SetWindowPos` 函数将窗口置顶。以下是一个示例代码:
```c++
#include <Windows.h>
int main() {
// 创建进程
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
CreateProcess(NULL, "notepad.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
// 等待进程启动
WaitForInputIdle(pi.hProcess, INFINITE);
// 获取窗口句柄
HWND hwnd = FindWindow(NULL, "无标题 - 记事本");
// 将窗口置顶
SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
// 等待用户关闭窗口
WaitForSingleObject(pi.hProcess, INFINITE);
// 关闭进程
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return 0;
}
```
在上面的代码中,`CreateProcess` 函数创建了一个新的进程,并返回进程信息结构体 `PROCESS_INFORMATION`。我们通过 `WaitForInputIdle` 函数等待进程启动,然后通过 `FindWindow` 函数找到了记事本窗口的句柄。最后,我们使用 `SetWindowPos` 函数将窗口置顶,并通过 `WaitForSingleObject` 函数等待用户关闭窗口。在程序结束前,需要调用 `CloseHandle` 函数关闭进程句柄和线程句柄。
需要注意的是,上述示例代码中的窗口标题可能会因为不同的语言环境而有所不同,需要根据实际情况进行修改。