#include <iostream>
#include <windows.h>
#include <stack>
using namespace std;
stack<DWORD> s;
int birth,dead;
BOOL Create()
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
char szNote[]="c:\\windows\\notepad.exe";
ZeroMemory(&si,sizeof(si));
ZeroMemory(&pi,sizeof(pi));
si.cb=sizeof(si);
BOOL bOK;
bOK=CreateProcess(NULL,szNote,NULL,NULL,0, 0, NULL,NULL, &si, &pi);
DWORD pid;
pid=pi.dwProcessId;
s.push(pid);
return bOK;
}
BOOL End()
{
BOOL bOK;
bOK=FALSE;
if(s.size()==0)
{
cout<<"没有子进程"<<endl;
return bOK;
}
DWORD pid;
pid=s.top();
HANDLE handle=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
bOK=TerminateProcess(handle,4);
s.pop();
return bOK;
}
int main()
{
birth=dead=0;
cout<<"输入‘1’创建进程"
<<"\n输入‘2’结束进程"
<<"\n输入‘3’查看详情"
<<"\n输入‘4’退出"<<endl;
int choice;
cin>>choice;
while(choice!=4)
{
switch(choice)
{
case 1:
{
BOOL bOK;
bOK=Create();
if(bOK==FALSE)
cout<<"创建进程失败!"<<endl;
else
{
cout<<"创建进程成功!"<<endl;
birth++;
}
break;
}
case 2:
{
BOOL bOK;
bOK=End();
if(bOK==FALSE)
cout<<"结束进程失败!"<<endl;
else
{
cout<<"结束进程成功!"<<endl;
dead++;
}
break;
}
case 3:
{
cout<<"共创建"<<birth<<"个进程"
<<"\n共结束"<<dead<<"个进程"
<<"\n共"<<birth-dead<<"个进程正在活动!"<<endl;
break;
}
}
cin>>choice;
}
while(s.size()>0)
End();
return 0;
}
windows创建进程
4星 · 超过85%的资源 需积分: 10 83 浏览量
2008-10-16
19:27:40
上传
评论
收藏 17KB RAR 举报
lixinyiabc123
- 粉丝: 2
- 资源: 11