操作系统

#include<iostream>
#include<Windows.h>
using namespace std;

void main(void)
{
	STARTUPINFO si;//STARTUPINFO用于指定新进程的主窗口特性的一个结构
	PROCESS_INFORMATION pi;//在创建进程时相关的数据结构之一,该结构返回有关新进程及其主线程的信息
	//TEXT作用是为了对字符处理的透明化,不论你使用的是不是 unicode 字符集,使用这个 TEXT 宏就可以使得程序都可以正常使用,只要在 程序中有 unicode 宏的,
	//那么就使用 宽字符,否则使用 单字节字符,保证程序的可移植性 .....
	TCHAR szCommandLine[] = TEXT("NOTEPAD");//因为C++支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包裹),这样对应的就有了两套字符串处理函数,比如:strlen和wcslen,
											//分别用于处理两种字符串
											//微软将这两套字符集及其操作进行了统一,通过条件编译(通过_UNICODE和UNICODE宏)控制实际使用的字符集,
											//这样就有了_T("")这样的字符串,对应的就有了_tcslen这样的函数为了存储这样的通用字符,就有了TCHAR:
	ZeroMemory(&si, sizeof(si));
	si.cb = sizeof(si);//包含STARTUPINFO结构中的字节数.如果Microsoft将来扩展该结构,它可用作版本控制手段,应用程序必须将cb初始化为sizeof(STARTUPINFO)。
	ZeroMemory(&pi, sizeof(pi));
	//WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。
	if (!CreateProcess(NULL, szCommandLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
	{
		fprintf(stderr, "Createprocess Failed ");
	}

	int x;
	while (true)
	{
		cout << "请输入要选择的操作:\n0:销毁进程\n1:挂起进程\n2:激活进程\n3:退出\n";
		cin >> x;
		switch (x)
		{
		case 0:
			if (TerminateProcess(pi.hProcess, 0))
				cout << "销毁进程成功" << endl;
			else
				cout << "销毁失败" << endl;
			break;
		case 1:
			if (SuspendThread(pi.hThread))
				cout << "挂起进程成功" << endl;
			else
				cout << "挂起失败" << endl;
			break;
		case 2:
			if (ResumeThread(pi.hThread))
				cout << "激活进程成功" << endl;
			else
				cout << "激活进程失败" << endl;
			break;
		case 3:
			exit(0);
		default:
			cout << "选项不正确" << endl;
		}
			
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值