本教程详细介绍如何在操作系统中生成和管理进程,包括启动新程序的方法及安全地结束不需要或无响应的进程技巧。
在VS2008中创建和销毁进程、打开记事本以及关闭记事本的简单C++示例程序如下:
```cpp
#include
#include
using namespace std;
int main() {
// 创建新的进程来启动记事本应用程序。
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
if (!CreateProcess(Lnotepad.exe, // 应用程序名
NULL, // 命令行参数(无)
NULL, // 进程安全属性
NULL, // 线程安全属性
FALSE, // 继承句柄?
0, // 创建标志:默认值
NULL, // 使用父进程环境块
NULL, // 启动目录(当前)
&si, // STARTUPINFO结构体指针
&pi)) { // PROCESS_INFORMATION 结构体指针
cout << CreateProcess failed. << endl;
return -1;
}
// 等待一段时间,以便记事本可以打开。
Sleep(5000);
// 发送关闭消息到记事本进程
HWND hwnd = FindWindow(NULL, L无标题 - 记事本);
if (hwnd != NULL) {
PostMessage(hwnd, WM_CLOSE, 0, 0);
cout << Notepad closed. << endl;
} else {
cout << Cannot find Notepad window handle. << endl;
}
// 关闭进程句柄
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return 0;
}
```
这段代码展示了如何使用Windows API在C++中创建和销毁一个进程,同时打开记事本并随后关闭它。