[操作系统]Linux实验三.10 Windows系统下的进程创建
2018-09-10 19:22
676 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Pecony/article/details/82594538
创建并启动一个记事本进程
[code]#include<iostream> #include<windows.h> using namespace std; int main () { char InChar; cout << "输入Y将调用内核函数创建新的进程\n"; cin >> InChar; if (InChar == 'Y'|| InChar == 'y') { BOOL IsSuccess; char FilePath[255]; //存放记事本程序的路径 UINT uSize=255; GetWindowsDirectory(FilePath, uSize); //调用API函数GetWindowsDirectory()取得Windows 的系统目录 strcat(FilePath, "\\notepad.exe"); //取得记事本程序的完整路径 PROCESS_INFORMATION NewProcessInformation; //建立进程信息变量NewProcessInformation STARTUPINFO StartUpInformation; //建立进程启动信息变量StarUpInformation memset(&StartUpInformation, 0, sizeof(StartUpInformation)); //将缓冲区StartUpInformation设置为0 StartUpInformation.cb=sizeof(StartUpInformation); StartUpInformation.wShowWindow=SW_SHOW; //新进程的显示方式为正常显示 StartUpInformation.dwFlags=STARTF_USESHOWWINDOW; IsSuccess=CreateProcess(NULL, FilePath, NULL, NULL, FALSE, CREATE_NEW_CONSOLE|NORMAL_PRIORITY_CLASS,\ NULL, NULL, &StartUpInformation, &NewProcessInformation); //启动新进程 if (!IsSuccess) cout<<"不能创建记事本进程\n"; else cout<<"记事本进程创建成功\n"; } }
创建并启动一个资源管理器进程
[code]//将"\\noteped.exe"换成"\\explorer.exe"即可
创建应用程序进程
[code]#include<windows.h> #include<stdio.h> #include<cstring> #include<iostream> using namespace std; int main() { char InChar; cout << "输入y创建进程" << endl; cin >> InChar; if(InChar == 'Y' || InChar == 'y') { bool IsSuccess; char FilePath[256]; strcpy(FilePath, "C:\\Program Files (x86)\\Lenovo\\PCManager\\WelcomePage.exe"); PROCESS_INFORMATION NewProcessInformation;// 建立进程信息变量NewProcessInformation STARTUPINFO StartUpInformation;//建立进程启动信息变量StarUpInformation /* memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组, c:是赋给buffer的值, count:是buffer的长度. 这个函数在socket中多用于清空数组.如:原型是memset(buffer, 0, sizeof(buffer)) memset 用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’; */ memset(&StartUpInformation, 0, sizeof(StartUpInformation));//将缓冲区StartUpInformation设置为0 StartUpInformation.cb=sizeof(StartUpInformation); //包含STARTUPINFO结构中的字节数.如果Microsoft将来扩展该结构,它可用作版本控制手段, //应用程序必须将cb初始化为sizeof(STARTUPINFO)。 StartUpInformation.wShowWindow=SW_SHOW; //SW就是ShowWindow显示窗口的形式 //用于设定如果子应用程序初次调用的ShowWindow //将SW_SHOWDEFAULT作为nCmdShow参数传递时,该应用程序的第一个重叠窗口应该如何出现。 //SW_SHOW 激活窗口并以其当前的大小和位置显示 //新进程的显示方式为正常显示 StartUpInformation.dwFlags=STARTF_USESHOWWINDOW;//STARTF_USESHOWWINDOW 使用wShowWindow成员 IsSuccess=CreateProcess(NULL, FilePath, NULL, NULL, FALSE, CREATE_NEW_CONSOLE|NORMAL_PRIORITY_CLASS,\ NULL, NULL, &StartUpInformation, &NewProcessInformation); //启动新进程 if (!IsSuccess) puts("不能创建word进程\n"); else puts("应用程序进程创建成功\n"); } else cout << "没有输入正确的字符" << endl; }
相关文章推荐
- linux操作系统分析实验三之从整理上理解进程创建、可执行文件的加载和进程执行进程切换,重点理解分析fork、execve和进程切换
- Linux操作系统实验二:进程的创建与可执行程序的加载
- 手把手教你北邮操作系统小学期实验实验二——Linux 系统内核/系统配置小型化2
- Linux系统创建一个新的进程
- 操作系统大型实验进展(6)-----Linux 内核文件系统与设备操作流程分析
- 进程信号Linux操作系统分析(2)- 进程的创建与可执行程序的加载
- Linux实验(三):从整体上理解进程创建、可执行文件的加载和进程执行进程切换,重点理解分析fork、execve和进程切换
- VMware下的Linux系统中Windows的共享目录,不支持创建软连接
- linux中关于创建子进程系统堆栈的分析
- python中的Linux系统如何创建子进程
- Windows操作系统下创建进程的过程
- windows和linux的进程创建 CreateProcess 和 fork
- Linux操作系统分析-lab2-进程的创建与可执行程序的加载
- linux系统之进程的创建与上下文切换
- Windows分区改Linux系统实验
- [Windows安全知识]Windows 操作系统进程描述(系统进程)
- 操作系统实验之单处理器系统的进程调度
- 用C语言在Linux系统下创建守护进程(Daemon)
- Linux 系统调用之 fork()——进程的创建
- Linux内核分析:实验六--Linux进程的创建过程分析