资源描述:
《《操作系统》程序源代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实训1程序源代码5.实训程序源代码Manager.h代码:voidPowerOff()//关机{HANDLEhToken;TOKEN_PRIVILEGEStkp;DWORDdwVersion;dwVersion=GetVersion();//得到WINDOWSNT或Win32的版本号if(dwVersion<0x80000000)//用于判断WIN系列,从而设置相应的权限{OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES
2、TOKEN_QUERY,&h
3、Token);LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);tkp.PrivilegeCount=1;tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);ExitWindowsEx(EWX_SHUTDOWN
4、EWX_FORCE,0);}else{Ex
5、itWindowsEx(EWX_FORCE
6、EWX_SHUTDOWN,0);}}voidExitUser()//注销{ExitWindows(0,0);}voidReStart()//重新启动{HANDLEhToken;TOKEN_PRIVILEGEStkp;DWORDdwVersion;dwVersion=GetVersion();//得到WINDOWSNT或Win32的版本号if(dwVersion<0x80000000)//用于判断WIN系列,从而设置相应的权限{OpenProcessToken(GetCurren
7、tProcess(),TOKEN_ADJUST_PRIVILEGES
8、TOKEN_QUERY,&hToken);LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);tkp.PrivilegeCount=1;tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0)
9、;ExitWindowsEx(EWX_REBOOT
10、EWX_FORCE,0);}else{ExitWindowsEx(EWX_REBOOT
11、EWX_SHUTDOWN,0);}}界面设计及实现功能代码:BOOLCTimeOffDlg::OnInitDialog(){CDialog::OnInitDialog();m_path="ringout.wav";ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX<0xF000);CMenu*pSysMenu
12、=GetSystemMenu(FALSE);if(pSysMenu!=NULL){CStringstrAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if(!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);}}SetIcon(m_hIcon,TRUE);//SetbigiconSetIcon
13、(m_hIcon,FALSE);//SetsmalliconCFont*f;f=newCFont;f->CreateFont(30,//nHeight0,//nWidth0,//nEscapement0,//nOrientationFW_BOLD,//nWeightTRUE,//bItalicTRUE,//bUnderline0,//cStrikeOutANSI_CHARSET,//nCharSetOUT_DEFAULT_PRECIS,//nOutPrecisionCLIP_DEFAULT_PRECIS,//nClipP
14、recisionDEFAULT_QUALITY,//nQualityDEFAULT_PITCH
15、FF_SWISS,//nPitchAndFamily_T("Arial"));//lpszFacGetDlgItem(IDC_STATIC1)->SetFont(f);GetDlgItem(IDC_STATIC1)->Se