创建进程函数C语言 c++创建进程函数( 四 )


if(hProcessSnap==INVALID_HANDLE_VALUE)
{
printf("调用失败\n");
return 1;
}
BOOL bProc=Process32First(hProcessSnap,pe32);
while(bProc)
{
printf("%5d %s\n",pe32.th32ProcessID,pe32.szExeFile);//输出进程ID和进程名
bProc=Process32Next(hProcessSnap,pe32);
}
CloseHandle(hProcessSnap);
return 0;
}
int creatproc()
{
char str[256]={0};
printf("请输入可执行文件路径(*.exe):\n");
scanf(" %s",str);
STARTUPINFO si={0};
si.cb=sizeof(STARTUPINFO);
si.dwFlags=STARTF_USESHOWWINDOW;
si.wShowWindow=SW_SHOW;
PROCESS_INFORMATION pi;
if (!CreateProcess(NULL,str,NULL,NULL,FALSE,0,NULL,NULL,si,pi))
{
printf("创建失败\n");
return -1;
}
else
{
printf("创建成功\n");
printf("进程号:%d\n",pi.dwProcessId);
}
return 0;
}
int stopproc()
{
DWORD ProcessID;
printf("请输入想要终止的进程ID\n");
scanf(" %d",ProcessID);
HANDLE hProcess=OpenProcess(PROCESS_TERMINATE,FALSE,ProcessID);//打开对应进程句柄
if (hProcess==NULL)
{
printf("失败\n");
return -1;
}
if (!TerminateProcess(hProcess,0))//关闭进程
{
printf("关闭失败\n");
}
else
{
printf("关闭成功\n");
}
CloseHandle(hProcess);
return 0;
}
int main()
{
int n=0;
while(n!=4)
{
printf("1 查看进程\n");
printf("2 创建进程\n");
printf("3 终止进程\n");
printf("4 结束\n");
printf("请选择:");
scanf(" %d",n);
switch(n)
{
case 1:
showallproc();
break;
case 2:
creatproc();
break;
case 3:
stopproc();
break;
case 4:
break;
default:
printf("输入有误!\n");
break;
}
}
return 0;
}
C语言创建进程fork()应该是Linux操作系统的函数 。
从#include sys/signal.h和fork()上判断,这个程序应该是Linux操作系统的应用程序 。
Windows上应该用CreateProcess创建进程
获取进程ID用
DWORD GetWindowThreadProcessld(HWND hwnd,LPDWORD lpdwProcessld)
hWnd:窗口句柄 。
lpdwProcessld:接收进程标识的32位值的地址 。如果这个参数不为NULL,GetWindwThreadProcessld将进程标识拷贝到这个32位值中,否则不拷贝 。
返回值:返回值为创建窗口的线程标识 。
关于创建进程函数C语言和c++创建进程函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读