windows api学习笔记-创建进程
#include//系统会自动连接到指定的库文件lib #include #include //std io 标准输入输出接口 #include using namespace std; int main() { char szCommandLine[] = "cmd"; STARTUPINFO si = {sizeof(si)};// PROCESS_INFORMATION pi; si.dwFlags = STARTF_USESHOWWINDOW;//指定wShowWindow成员有效 si.wShowWindow = TRUE;//显示新进程的主窗口 BOOL bRet = ::CreateProcess( NULL,//不在此指定可执行文件的文件名 szCommandLine,//命令行参数,包含执行什么可执行文件 NULL,//默认进程安全性 NULL,//默认线程安全性 FALSE,//当前进程内的句柄不可以被子进程继承 CREATE_NEW_CONSOLE, NULL,//使用本进程的环境变量 NULL,//使用本进程的驱动器和目录 &si,//新进程中主窗口的位置,大小和标准句柄 &pi //返回新进程的信息,如ID号句柄等 ); if(bRet) { //不使用两个返回的句柄最好把他关闭掉,要不然占有系统资源 ::CloseHandle(pi.hThread); ::CloseHandle(pi.hProcess); printf("新进程的ID号:%d\n",pi.dwProcessId); printf("新进程的主线程的ID号:%d\n",pi.dwThreadId); } char a; cin>>a; return 0; }
其中
STARTUPINFO si = {sizeof(si)};//
这一句可以替换成:
STARTUPINFO si;
::ZeroMemory(&si,sizeof(si));
si.cb = sizeof(si);
分类:
WIN API学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统