第十六章--windows应用程序基础和进程控制--进程控制算法--procversion

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include
#include

//利用进程和操作系统的版本信息的简单示例

void main()
{
//获得进程的ID
DWORD dwIdThis=GetCurrentProcessId();

//获得进程和报告使用的操作系统版本
DWORD dwVerReq=GetProcessVersion(dwIdThis);
WORD wMajorReq=(WORD)(dwVerReq>16);
WORD wMinorReq=(WORD)(dwVerReq &0xffff);

printf("Process ID: %d,requires OS: %d%d\n",dwIdThis,wMajorReq,wMinorReq);

//设置版本信息的数据结构,以便保存操作系统的版本信息
OSVERSIONINFOEX osvix;
ZeroMemory(&osvix,sizeof(osvix));
osvix.dwOSVersionInfoSize=sizeof(osvix);

//提取版本信息和报告
GetVersionEx(reinterpret_cast(&osvix));
printf("Running on OS: %d.%d\n",osvix.dwMajorVersion,osvix.dwMinorVersion);
//如果是windows NT5(windows 2000)系统,那么将其提升为高优先权
if(osvix.dwPlatformId==VER_PLATFORM_WIN32_NT && osvix.dwMajorVersion>=5)
{
//改变当前运行进程的优先级为高
SetPriorityClass(
GetCurrentProcess(),
HIGH_PRIORITY_CLASS);
//报告给用户
printf("Task Manager should now indicate this");
printf("process is high priorty.\n");
}
}

相关文档
最新文档