mfc关机程序

合集下载

mfc 代码关闭当前多文档的子窗口

mfc 代码关闭当前多文档的子窗口

MFC(Microsoft Foundation Class)是微软公司开发的用于Windows评台的C++类库,用于简化Windows应用程序的开发。

在MFC中,关闭当前多文档的子窗口可以通过以下步骤实现:1. 获取当前活动的文档视图需要获取到当前处于活动状态的文档视图,可以通过以下代码实现:```cppCWnd* pActiveWnd = AfxGetM本人nWnd(); CMDIChildWnd* pChild = (CMDIChildWnd*)pActiveWnd; CView* pView = pChild->GetActiveView();```2. 关闭子窗口有了当前活动的文档视图之后,可以通过以下代码关闭子窗口:```cpppChild->MDIDestroy();```在这段代码中,`MDIDestroy` 函数用于关闭当前子窗口。

3. 整合关闭子窗口的代码将以上两个步骤整合在一起,完整的代码如下所示:```cppCWnd* pActiveWnd = AfxGetM本人nWnd(); CMDIChildWnd* pChild = (CMDIChildWnd*)pActiveWnd; CView* pView = pChild->GetActiveView();pChild->MDIDestroy();```这样,就可以在MFC中关闭当前多文档的子窗口了。

以上代码基于MFC类库,在多文档程序框架下实现了关闭当前子窗口的功能。

在实际开发中,可以根据具体的需求和程序结构进行适当的修改和扩展。

总结起来,关闭当前多文档的子窗口在MFC中实现并不复杂,通过获取当前活动的文档视图并调用相应的函数即可完成这一操作。

希望本文对MFC开发者能有所帮助。

初步思考:续写部分将围绕MFC中关闭子窗口的方法展开,涉及到MFC开发中更广泛的内容,包括MFC文档视图架构、消息处理机制等。

兄弟mfc J2320打印机说明书

兄弟mfc J2320打印机说明书

10 接收传真 .......................... 30
接收模式 .................................. 30 使用接收模式 ........................... 31 接收模式设置 ........................... 32 振铃次数................................ 32
/registration
Brother 联系方式
重要事项
为获得技术和操作上的帮助,请致电中国大陆的呼叫中心。 若要搜索常见问题解答 (FAQ)/ 维修站 / 驱动程序 / 手册等,请访问我们的服务和 技术支持网站:

6
扫描到计算机 .................. 22
扫描前 ...................................... 22 如何使用 ControlCenter4 将文档扫描成 PDF 文件 (Windows®).............................. 22 如何使用触摸屏 将文档扫描成 PDF 文件 ........... 23
互联网支持 /Brother 应用程序
直接从本设备扫描并上传图像和文件 到常用的网络服务。无需使用计算机, 直接从本设备捕捉和转换信息。 (uu /m anuals 上的互联网支持指南 )
1 250
2
1
打印
1 纸盒 - - - 250 张 / 最大为 A3 或 Ledger 2 手动进纸槽 - - - - 1 张
v
A
日常维护 .......................... 33
如何清洁和检查设备 ................ 33 清洁平板扫描器 .................... 33 检查打印质量 ........................ 33 检查打印对齐 ........................ 35

mfc7360无法打印关闭电源然后重新打开

mfc7360无法打印关闭电源然后重新打开

【知识文章】MFC7360无法打印:关闭电源然后重新打开的解决办法在日常办公中,我们经常会遇到打印机无法正常工作的情况。

其中一种常见的问题是打印机的电源无法正常关闭,然后重新打开时无法继续打印。

本文将探讨这个问题并提供解决方案,帮助您快速解决MFC7360无法打印的困扰。

1. 问题现象在使用MFC7360打印机时,您可能会遇到以下状况:关闭打印机电源后重新打开,打印机无法继续工作。

这种情况可能导致您无法按时打印所需文件,给工作和生活带来一定程度的不便。

2. 问题原因造成MFC7360无法打印的原因多种多样,常见的包括电源供应异常、打印队列堵塞、硬件故障等。

在本文中,我们将着重探讨电源供应异常所导致的问题。

3. 解决方法针对MFC7360无法打印关闭电源然后重新打开的问题,以下是一些可能的解决方法,供您参考:方法1:检查电源连接确认MFC7360的电源连接是否稳定。

请检查电源线是否插紧,确保电源能够正常供应打印机。

若发现电源连接不良,建议重新插拔电源线,并确保插头接触良好。

方法2:按正确顺序关闭和打开电源关闭打印机电源时,请按照正确的顺序进行操作。

先按下打印机控制面板上的关机按钮,然后再拔掉电源线。

同样,在重新打开电源时,请先插好电源线,再按下控制面板上的开机按钮。

这样的顺序操作可以避免电源异常引起的问题。

方法3:检查打印队列有时候,MFC7360无法打印是因为打印队列堵塞。

打开打印队列窗口,检查是否有未完成的打印任务。

如果有,取消所有未完成的任务,并尝试重新打印。

您还可以尝试清空打印队列,然后重新安排任务。

方法4:联系技术支持如果以上方法无法解决问题,建议您联系MFC7360的技术支持团队。

他们将为您提供专业的帮助和进一步的解决方案。

4. 个人观点和理解在解决MFC7360无法打印关闭电源然后重新打开的问题时,我们应该充分理解打印机的工作原理和电源供应的重要性。

关闭电源后重新打开时,保持正确的操作顺序是非常关键的。

C++让电脑关机,重启,注销

C++让电脑关机,重启,注销

C++让电脑关机,重启,注销不展示了,一运行关机了就代码#include <windows.h>#include <iostream>#include <string.h>using namespace std;//功能实现BOOL ReSetWindows(DWORD dwFlags, BOOL bForce){//检查参数是否正确if (dwFlags != EWX_LOGOFF && dwFlags != EWX_REBOOT && dwFlags != EWX_SHUTDOWN)return FALSE;//获得系统的版本信息,让我们后面确定是否需要提升系统权限OSVERSIONINFO osvi = { 0 };//获得参数的大小,以提供给GetVersionEx来判断这是一个新版本的OSVERSIONINFO,还是旧版本的//新版本是OSVERSIONINFOEX。

扩充版本osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);//if (!GetVersionExA(&osvi))//{// return FALSE;//}//检查操作系统的版本,如果是NT类型的系统,需要提升系统权限if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT){//EnableShutDownPriv();}//判断是否是强制关机,强制关闭系统进程。

dwFlags |= (bForce != FALSE) ? EWX_FORCE : EWX_FORCEIFHUNG;//调用APIreturn ExitWindowsEx(dwFlags, 0);}//用来提升系统权限//这是一个通用的提升权限函数,如果需要提升其他权限//更改LookupPrivilegeValue的第二个参数SE_SHUTDOWN_NAME,即可BOOL EnableShutDownPriv(){HANDLE hToken = NULL;TOKEN_PRIVILEGES tkp = { 0 };//打开当前程序的权限令牌if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) {return FALSE;}//获得某一特定权限的权限标识LUID,保存在tkp中if (!LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid)){CloseHandle(hT oken);return FALSE;}tkp.PrivilegeCount = 1;tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;//调用AdjustT okenPrivileges来提升我们需要的系统权限if (!AdjustT okenPrivileges(hT oken, FALSE, &tkp, sizeof(TOKEN_PRIVILEGES), NULL, NULL)){CloseHandle(hT oken);return FALSE;}return TRUE;}BOOL Judge(int key){//调用方法:提升软件系统的权限EnableShutDownPriv();switch (key){case 1001://关机ReSetWindows(EWX_SHUTDOWN, true); break;case 1002://重启ReSetWindows(EWX_REBOOT, true); break;case 1003://注销ReSetWindows(EWX_LOGOFF, false); break;}return 0;}int main(int argc, char *argv[]){char *tmp = argv[0];int key = atoi(tmp);Judge(key);}。

mfc常用技巧

mfc常用技巧

mfc常用技巧一、打开CD-ROMmciSendString("Set cdAudio door open wait",NULL,0,NULL);二、关闭CD_ROMmciSendString("Set cdAudio door closed wait",NULL,0,NULL);三、关闭计算机OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息的数据结构OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);GetVersionEx(&OsVersionInfo); //获取操作系统版本信息if(OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS){//Windows98,调用ExitWindowsEx()函数重新启动计算机DWORD dwReserved;ExitWindowsEx(EWX_REBOOT,dwReserved); //可以改变第一个参数,实现注销用户、//关机、关闭电源等操作// 退出前的一些处理程序}四、重启计算机typedef int (CALLBACK *SHUTDOWNDLG)(int); //显示关机对话框函数的指针HINSTANCE hInst = LoadLibrary("shell32.dll"); //装入shell32.dllSHUTDOWNDLG ShutDownDialog; //指向shell32.dll库中显示关机对话框函数的指针if(hInst != NULL){//获得函数的地址并调用之ShutDownDialog = (SHUTDOWNDLG)GetProcAddress(hInst,(LPSTR)60);(*ShutDownDialog)(0);}五、枚举所有字体LOGFONT lf;lf.lfCharSet = DEFAULT_CHARSET; // Initialize the LOGFONT structurestrcpy(lf.lfFaceName,"");CClientDC dc (this);// Enumerate the font families::EnumFontFamiliesEx((HDC) dc,&lf, (FONTENUMPROC) EnumFontFamProc,(LPARAM) this,0);//枚举函数int CALLBACK EnumFontFamProc(LPENUMLOGFONT lpelf, LPNEWTEXTMETRIC lpntm,DWORD nFontType,long lparam) {// Create a pointer to the dialog windowCDay7Dlg* pWnd = (CDay7Dlg*) lparam;// add the font name to the list boxpWnd ->m_ctlFontList.AddString(lpelf ->elfLogFont.lfFaceName);// Return 1 to continue font enumerationreturn 1;}其中m_ctlFontList是一个列表控件变量六、一次只运行一个程序实例,如果已运行则退出if( FindWindow(NULL,"程序标题")) exit(0);七、得到当前鼠标所在位置CPoint pt;GetCursorPos(&pt); //得到位置八、上下文菜单事件触发事件:OnContextMenu事件九、显示和隐藏程序菜单CWnd *pWnd=AfxGetMainWnd();if(b_m) //隐藏菜单{pWnd->SetMenu(NULL);pWnd->DrawMenuBar();b_m=false;}else{CMenu menu;menu.LoadMenu(IDR_MAINFRAME); ////显示菜单也可改变菜单项pWnd->SetMenu(&menu);pWnd->DrawMenuBar();b_m=true;menu.Detach();}十、获取可执行文件的图标HICONhIcon=::ExtractIcon(AfxGetInstanceHandle(),_T("NotePad.exe"),0);if (hIcon &&hIcon!=(HICON)-1){pDC->DrawIcon(10,10,hIcon);}DestroyIcon(hIcon);十一、窗口自动靠边程序演示BOOL AdjustPos(CRect* lpRect){//自动靠边int iSX=GetSystemMetrics(SM_CXFULLSCREEN);int iSY=GetSystemMetrics(SM_CYFULLSCREEN);RECT rWorkArea;BOOL bResult = SystemParametersInfo(SPI_GETWORKAREA, sizeof(RECT), &rWorkArea, 0);CRect rcWA;if(!bResult){//如果调用不成功就利用GetSystemMetrics获取屏幕面积rcWA=CRect(0,0,iSX,iSY);}elsercWA=rWorkArea;int iX=lpRect->left;int iY=lpRect->top;if(iX < rcW A.left + DETASTEP && iX!=rcW A.left){//调整左//pWnd->SetWindowPos(NULL,rcWA.left,iY,0,0,SWP_NOSIZ E);lpRect->OffsetRect(rcWA.left-iX,0);AdjustPos(lpRect);return TRUE;}if(iY < rcW A.top + DETASTEP && iY!=rcW A.top){//调整上//pWnd->SetWindowPos(NULL ,iX,rcWA.top,0,0,SWP_NOSI ZE);lpRect->OffsetRect(0,rcW A.top-iY);AdjustPos(lpRect);return TRUE;}if(iX + lpRect->Width() > rcWA.right - DETASTEP && iX !=rcW A.right-lpRect->Width()){//调整右//pWnd->SetWindowPos(NULL ,rcWA.right-rcW.Width(),iY,0,0,SWP_NOSIZE); lpRect->OffsetRect(rcWA.right-lpRect->right,0);AdjustPos(lpRect);return TRUE;}if(iY + lpRect->Height() > rcWA.bottom - DETASTEP && iY !=rcW A.bottom-lpRect ->Height()){//调整下//pWnd->SetWindowPos(NULL ,iX,rcWA.bottom-rcW.Height(),0,0,SWP_NOSIZE); lpRect->OffsetRect(0,rcW A.bottom-lpRect->bottom);return TRUE;}return FALSE;}//然后在ONMOVEING事件中使用所下过程调用CRect r=*pRect;AdjustPos(&r);*pRect=(RECT)r;十二、给系统菜单添加一个菜单项给系统菜单添加一个菜单项需要进行下述三个步骤:首先,使用Resource Symbols对话(在View菜单中选择Resource Symbols...可以显示该对话)定义菜单项ID,该ID应大于0x0F而小于0xF000;其次,调用CWnd::GetSystemMenu获取系统菜单的指针并调用CWnd:: Appendmenu将菜单项添加到菜单中。

mfc基本程序

mfc基本程序

mfc基本程序
MFC(Microsoft Foundation Class)是微软基础类库,是微软公司实现的一个c++类库,主要封装了大部分Windows API函数。

下面是MFC基本程序的步骤:
1. 添加相应的头文件和库文件:在使用API时,需要添加相应的头文件和库文件,例如PlaySound需要头文件mmsystem.h和库文件WINMM.LIB的支持。

2. 设计窗口类:定义一个从CWnd 类继承而来的派生类,负责处理用户交互和绘图等操作。

3. 注册窗口类:使用AfxRegisterClass 函数将窗口类注册到 Windows 系统中。

4. 创建窗口对象:使用CreateWindow 函数创建一个窗口对象,并将其显示在屏幕上。

5. 循环取消息:通过消息循环从Windows 系统接收消息,并将其发送给窗口对象进行处理。

6. 处理消息:在窗口对象的处理函数中,根据接收到的消息类型进行相应的处理。

请注意,上述步骤仅为MFC基本程序的一般性指导,具体的程序编写可能因项目需求和个人喜好而有所不同。

如果你需要更详细的信息或有特定的问题,请提供更多细节以便获得更准确的回复。

c#实现关机,注销,重启源代码

c#实现关机,注销,重启源代码

Re:c#实现关机,注销,重启源代码另一份代码using System;using System.Drawing;using System.Collections;using ponentModel;using System.Windows.Forms;using System.Data;using System.Management;using System.Runtime.InteropServices; //加入此名字间是为了引用Windows API来实现关机namespace RebootComputer{public class Form1 : System.Windows.Forms.Form{//---------------这部分都是控件--------private System.Windows.Forms.Button Reboot;private System.Windows.Forms.Button ShutDown;private ponentModel.Container components = null;private System.Windows.Forms.Button Exit;//---------------------------------------------------------private ManagementObjectSearcher obj ;//-----------------程序初始化----------------public Form1(){InitializeComponent();}//-----------------------程序释放----------------------protected override void Dispose( bool disposing ){if( disposing ){if (components != null){components.Dispose();}}base.Dispose( disposing );}//-------------------------初始化----------------------private void InitializeComponent(){this.Reboot = new System.Windows.Forms.Button();this.ShutDown = new System.Windows.Forms.Button();this.Exit = new System.Windows.Forms.Button();this.SuspendLayout();//// Reboot//this.Reboot.Location = new System.Drawing.Point(16, 16); = "Reboot";this.Reboot.TabIndex = 0;this.Reboot.Text = "重启";this.Reboot.Click += new System.EventHandler(this.Reboot_Click);//// ShutDown//this.ShutDown.Location = new System.Drawing.Point(112, 16); = "ShutDown";this.ShutDown.TabIndex = 1;this.ShutDown.Text = "关机";this.ShutDown.Click += new System.EventHandler(this.ShutDown_Click);//// Exit//this.Exit.Location = new System.Drawing.Point(216, 16); = "Exit";this.Exit.TabIndex = 2;this.Exit.Text = "退出";this.Exit.Click += new System.EventHandler(this.Exit_Click);//// Form1//this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);this.ClientSize = new System.Drawing.Size(304, 53);this.Controls.Add(this.Exit);this.Controls.Add(this.ShutDown);this.Controls.Add(this.Reboot); = "Form1";this.Text = "重启、关机";this.ResumeLayout(false);//-----------------主函数,没有此函数可运行不了哦----------[STAThread]static void Main(){Application.Run(new Form1());}//--------------------重启部分程序private void Reboot_Click(object sender, System.EventArgs e){obj = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");foreach(ManagementObject oc in obj.Get()){DialogResult result = MessageBox.Show("Are you sure want to reboot?","Confirm",MessageBoxB uttons.OKCancel,rmation);//这里为确定用户是否点击“确定”按钮if(DialogResult.OK == result){oc.InvokeMethod("Reboot",null);//点击“确定”按钮后就调用此方法重启机器}}}//---------------关机部分程序------------------------private void ShutDown_Click(object sender, System.EventArgs e){if(DialogResult.OK == MessageBox.Show("Are you sure want to Shut Down?","Confirm",MessageB oxButtons.OKCancel,rmation)) //同上{//主要调用系统API来实现ExitWindowsEx(1,0);}}//这里的[DllImport("user32.dll")]是.net里属性的表达方法,DllImport为引用系统API所在的库" user32.dll"[DllImport("user32.dll")]//主要API是这个,注意:必须声明为static externprivate static extern int ExitWindowsEx(int x,int y);//这个是退出按钮的实现,即实现程序的退出private void Exit_Click(object sender, System.EventArgs e){Application.Exit();}}}c#实现关机,注销,重启源代码一. 设计关闭Windows窗体1. 界面的设计新建一个标准工程,向工程中增加一个Windows窗体并向窗体中添加如下控件,并分别设置其属性:控件名类别 Text 控件名类别TextCheckBox1 CheckBox 自动关机GroupBox1 GroupBox 当前系统时间CheckBox1 CheckBox 倒计时执行操作 GroupBox2 GroupBox 设定时间CheckBox1 CheckBox 定时报警 TxtTime TextBoxButCancle Button 取消 SetupTime DateTimePickerButReOpen Button 重新启动 SetupDate DateTimePickerButClose Button 关机Timer1 Timer 100ButSysInto Button 系统信息 ButReLogin Button 注消Windows窗体界面:将窗体属性中的caption设置为"关闭windows",名称设置为"frmmain"。

c语言自动关机程序代码

c语言自动关机程序代码

c语言自动关机程序代码
1.#include<stdlib.h>和#include<stdio.h>分别是C标准库文件,分别包含了系统函数和输入输出函数。

2. #include <windows.h> 是Windows API的头文件,包含了系统调用的函数和数据类型。

3. int main() 是程序的入口函数。

4. int delay; 定义了一个整型变量 delay。

5. printf('请输入关机延迟时间(单位:秒):'); 输出提示信息,让用户输入延迟时间。

6. scanf('%d', &delay); 从键盘读入一个整数,存放在变量delay 中。

7. printf('%d秒后将自动关机!', delay); 输出提示信息,告诉用户将在多少秒后关机。

8. Sleep(delay * 1000); 延迟指定的时间,此处单位为毫秒,需要将秒转换为毫秒。

9. system('shutdown -s -t 0'); 调用系统命令,执行关机操作。

其中,-s 表示关机,-t 0 表示立即关机。

10. return 0; 结束程序。

- 1 -。

在C#中运用API函数编写多功能关机程序.doc

在C#中运用API函数编写多功能关机程序.doc

我用visual C#来编写一个多功能的关机程序。

该程序具有:定时关机、倒计时关机、关机 提醒、系统信息获取等四项功能,可设宦关机时间精确到秒。

并且让你很快掌握Visual C#H' 对API 的操作程序。

编写过程如下: 一、设计关闭Windows 窗体1 •界面的设计:新建一个标准工程,向工程中增加一个Windows 窗体并向窗体中添加如下控件,并分别 设置其属性:控件名类别 Text 控件名类别 TextCheckBox 0动关机 GixwpBox 1 GroupBox 当前系统时间 CheckBox 倒计时执行操作 GroupBox2 GroupBox 设定时间 CheckBox 定时报警 TxtTime TextBoxB utCancle B utton 取消 SetupTime DateTimePicker ButReOpen Button 重新启动 SetupDate DateTimePickerButClose Button 关机 Timer 1 Timer 100ButSyslnto Button 系统信息 ButReLogin BuMon 注消Windows 窗体界面:将窗体属性中的caption 设置为“关闭windows”,名称设置为'Trmmain^o2. 在窗体类屮引用APl|函数API 两数是构筑Windows 应用程序的基石,是Windows 编程的必备利器。

每一种 Windows 应用程序开发工具都提供了间接或直接调用了 Windows API 〔函数的方法,或者是 调用Windows API I®数的接口,也就是说具备调用动态连接库的能力。

VisualC#和其它开 发工具一样也能够调用动态链接库的API 函数。

在Visual C#中调用APl|的基本过程:首先,在调用APl|Z 前,你必须先导入System.Runtime.InteropServices 这个名称空间。

VC++ 实现定时关机或休眠-MFC 对话框应用程序介绍文档

VC++ 实现定时关机或休眠-MFC 对话框应用程序介绍文档

// DDX/DDV support
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP() // CTimePowerOffDlg dialog //以离关机时间多长为主 CTimePowerOffDlg::CTimePowerOffDlg(CWnd* pParent /*=NULL*/)
// CTimePowerOffDlg message handlers
BOOL CTimePowerOffDlg::OnInitDialog() {
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000);
图 1 对话框界面
图 2 界面标注
————福哥之路(SelF Code) ————
TimePowerOffDlg.cpp 的整个文件如下:
// TimePowerOffDlg.cpp : implementation file #include "stdafx.h" #include "TimePowerOff.h" #include "TimePowerOffDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif #define MYWM_NOTIFYICON WM_USER+1

c语言中控制关机代码

c语言中控制关机代码

C语言中命令如下:
重启
#include <stdlib.h>
main()
{
system("shutdown /r");
}
关机
#include <stdlib.h>
main()
{
system("shutdown /s");
}
XP系统下
else if (!ExitWindowsEx(EWX_POWEROFF, 0))
if(!ExitWindowsEx(EWX_POWEROFF|EWX_FORCE, 0))
return FALSE;
return TRUE;
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-l 注销(不能与选项 -m 一起使用)
-s 关闭此计算机
-r 关闭并重启动此计算机
-a 放弃系统关机
-m \\computername 远程计算机关机/重启动/放弃

关机代码(C语言)

关机代码(C语言)

关机代码(C语言)在计算机编程中,关机代码是一种能够让计算机自动关机的程序。

这种程序通常用于在特定条件下自动关闭计算机,比如在完成某项任务后自动关闭或者在系统出现故障时自动关闭。

在C语言中,编写关机代码并不复杂。

下面我们将介绍如何使用C语言编写一个简单的关机程序。

首先,我们需要包含Windows系统的头文件,因为关机功能是由操作系统提供的。

在C语言中,可以使用windows.h头文件来调用Windows系统的API函数。

接下来,我们需要定义一个主函数main(),在这个函数中我们将调用Windows系统的API函数来实现关机功能。

我们可以使用ExitWindowsEx函数来实现关机功能。

这个函数的原型如下:BOOL ExitWindowsEx(UINT uFlags, DWORD dwReason);其中,uFlags参数用于指定关机的方式,比如立即关机、重启、注销等。

dwReason参数用于指定关机的原因,比如系统故障、应用程序要求等。

下面是一个简单的关机程序的示例代码:```c。

#include <windows.h>。

int main() {。

// 关机。

ExitWindowsEx(EWX_SHUTDOWN, 0);return 0;}。

```。

在这个示例代码中,我们调用ExitWindowsEx函数并传入EWX_SHUTDOWN参数来实现关机功能。

当程序执行到这一行时,计算机将会自动关机。

除了简单的关机功能,我们还可以根据需要编写更复杂的关机程序。

比如可以添加判断条件,只有在特定的条件下才执行关机操作。

或者可以添加日志功能,记录每次关机的原因和时间。

总的来说,使用C语言编写关机代码并不复杂。

只需要了解Windows系统的API函数和C语言的基本语法,就可以轻松实现关机功能。

当然,在实际编写关机程序时,还需要考虑到系统稳定性和安全性等因素,确保关机操作不会对系统造成损害。

在实际应用中,关机代码可以用于自动化任务的执行。

兄弟mfc J2320打印机说明书

兄弟mfc J2320打印机说明书

v
A
日常维护 .......................... 33
如何清洁和检查设备 ................ 33 清洁平板扫描器 .................... 33 检查打印质量 ........................ 33 检查打印对齐 ........................ 35
如何发送传真 ........................... 27 停止传真................................ 28 如何存储号码 ........................... 28 存储一个暂停 ........................ 28 存储地址簿号码 ..................... 29 如何设置本机标识 .................... 29
AirPrint 指南
Google 云打印指南
此指南详细说明如何使用 Google Cloud PDF 文件 /Brother Print™ ( 谷歌云打印 ) 服务进行网络打印。 Solutions Center (Brother 解决方案 中心 ) 1 PDF 文件 /Brother Solutions Center (Brother 解决方案 中心 ) 1
使用说明书 ( 基本功能 )
MFC-J2320
! 注意 使用本产品时,请您先仔细阅读使用 说明书,再正确操作。请妥善保管好本手册, 以便日后查阅。
版本 0 SCHN
为了创造更加美好的环境
请您协作 首先对您使用 Brother 产品表示衷心的感谢! Brother 公司致力于关爱地球环境,制定了 “ 从产品开发到废弃,关爱地球环境 ” 的基本方针。当地的公民在环境保护活动中也应该对当地社会、环境两方面尽每 个人的微薄之力。 因此,希望您能配合这个计划,作为环境保护活动的一环,在平时处理废弃物的 时候能多加注意。 1 不用的包装材料,为了能再次回收利用,请交付给当地相关回收公司进行处理。 2 废弃耗材的处理,应遵守相关的法律和规定。 3 产品保养或修理需要更换零部件时,有不需要的电路板和电子零件以及产品废 弃时,请作为电子废弃物处理。 4 本产品中的部分零部件可以用于同一工厂生产的同系列机型上。 注: 零部件的更换请联系就近的 Brother 维修站。 在线注册本产品:

MFC关机、注销、重启

MFC关机、注销、重启

MFC关机、注销、重启一、关机void CMainFrame::ShutDown(){//获取操作系统信息DWORD dwVersion = GetVersion();if (dwVersion < 0x80000000) // Windows NT {HANDLE hToken;TOKEN_PRIVILEGES tkp;if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) return;LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);tkp.PrivilegeCount = 1; // one privilege to settkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))return;}else{if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))return;}}二、注销void CMainFrame::Logoff(){//获取操作系统信息DWORD dwVersion = GetVersion();if (dwVersion < 0x80000000) // Windows NT {HANDLE hToken;TOKEN_PRIVILEGES tkp;if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))return;LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);tkp.PrivilegeCount = 1; // one privilege to settkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGE S)NULL, 0);if (!ExitWindowsEx(EWX_LOGOFF | EWX_FORCE, 0))return;}else{if (!ExitWindowsEx(EWX_LOGOFF | EWX_FORCE, 0))return;}}第三、重启void CMainFrame::Restart(){//获取操作系统信息DWORD dwVersion = GetVersion();if (dwVersion < 0x80000000) // Windows NT{HANDLE hToken;TOKEN_PRIVILEGES tkp;if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))return;LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);tkp.PrivilegeCount = 1; // one privilege to set tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);if (!ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0))return;}else{if (!ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0))return;}}ExitWindowsEX()函数用来退出、重启或注销系统。

VC关机代码

VC关机代码
end;
VER_PLATFORM_WIN32_WINDOWS:
begin
Result := 'Windows 95/98/98SE/Me ';
end;
end;
end;
=========================================================================================================================}
ExitWindowsEx(EWX_SHUTDOWN+EWX_FORCE+EWX_POWEROFF+EWX_FORCEIFHUNG,0);
end else
begin
ExitWindowsEx(EWX_SHUTDOWN+EWX_FORCE+EWX_POWEROFF+EWX_FORCEIFHUNG,0);
var osVerInfo: TOSVersionInfo;
begin
Result := ' ';
osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if GetVersionEx(osVerInfo) then
if LookupPrivilegeValue(nil, 'SeShutdownPrivilege ', tkp.Privileges[0].Luid) then
begin
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
使用:

mfc中关闭窗口的几种办法

mfc中关闭窗口的几种办法

MFC中关闭窗口的几种办法+MFC中MessageBox的用法MFC中关闭窗口的几种办法:退出程序用AfxGetMainWnd()->SendMessage(WM_CLOSE);关闭当前窗口用DestroyWindow( );关闭模式对话框用EndDialog(0);MFC中MessageBox的用法消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。

1.MessageBox("这是一个最简单的消息框!");2.MessageBox("这是一个有标题的消息框!","标题");3.MessageBox("这是一个确定取消的消息框!","标题", MB_OKCANCEL );4.MessageBox("这是一个警告的消息框!","标题", MB_ICONEXCLAMA TION );5.MessageBox("这是一个两种属性的消息框!","标题", MB_ICONEXCLAMA TION|MB_OKCANCEL );6.if(MessageBox("一种常用的应用","标题",MB_ICONEXCLAMA TION|MB_OKCANCEL)==IDCANCEL)return;附其它常用属性系统默认图标,可在消息框上显示X错误MB_ICONHAND, MB_ICONSTOP, and MB_ICONERROR询问MB_ICONQUESTION!警告MB_ICONEXCLAMA TION and MB_ICONWARNINGi信息MB_ICONASTERISK and MB_ICONINFORMA TION按钮的形式MB_OK 默认MB_OKCANCEL 确定取消MB_YESNO 是否MB_YESNOCANCEL 是否取消返回值IDCANCEL 取消被选IDNO 否被选IDOK 确定被选IDYES 是被选MFC 文本框用法//获得EDITCEdit* pBoxOne;pBoxOne = (CEdit*) GetDlgItem(IDC_EDIT1);//付值pBoxOne->SetWindowText( _T"FOO" );//取值CString str;pBoxOne->GetWindowText(str);GetDlgItem(IDC_EDIT1)->SetWindowText( _T"FOO" );也可以//取值CString str;GetDlgItem(IDC_EDIT1)->GetWindowText(str);EditControl是在MFC对话框中最频繁的使用的控件之一VC++2005提供EditControl的属性和控件事件操作简单方便1只允许输入数字如果设置EditControl中只能输入数字,在VC6.0中需要编写一个派生类来达到目的,而在VC++2005下只需要在属性对话框中将Number的属性值设为True就可以了.2获取EditControl的内容两种方法第一种,利用MFC应用程序向导生成一个基于对话框的应用程序,从资源视图中选择该Dialog窗体,利用右侧的工具箱,向Dialog内添加一个EditControl项,声明控件变量的类别为V alue,变量类型为CString,变量名为m_sEdit_Content. CString m_sEdit_Content;CString s;UpdateData(true);s=m_sEdit_Content.GetString();MessageBox(s,_T("获取编辑框的内容"),MB_OK);s.ReleaseBuffer();这样就取得了编辑框的内容UpdateData(true);这句代码很重要,它的作用是将输入的数据装入EditControl对应的变量m_sEdit_Content中.由于MFC应用程序向导默认是使用Unicode库,所以MessageBox中的字符串需要用_T(),否则会出现const char[]转换LPCTSTR错误,如果不使用Unicode库就不需要_T().第二种方法声明控件变量的类别为Control,变量类型为CEdit,变量名为m_Edit_Content.代码如下(Unicode)CString s;s.GetBufferSetLength(1024);m_Edit_Content.GetWindowTextW(s.GetBuffer(),s.GetLength());MessageBox(s,_T("获取文本框的内容"),MB_OK);s.ReleaseBuffer();如果不是Unicode下获取编辑框内容的函数就是GetWindowTextA3将EditControl中的内容转化为整数在限制编辑框只能数字之后,要将字符串转化为整数声明控件变量的类别为V alue,变量类型为CString,变量名为m_sEdit_Content.CString s;UpdateData(true);s=m_sEdit_Content.GetString();int n=_tstoi(s);s.ReleaseBuffer();n就是所需要的整数在VC2005下字符串转换成整数需要_tstoi这个函数4限制编辑框的输入长度声明控件变量的类别为Control,变量类型为CEdit,变量名为m_Edit_Content.在对话框初始化的地方写m_Edit_Content.SetLimitText(1);编辑框就只能输入一个字符了.教你如何用WORD文档(2012-06-27 192246)转载▼标签:杂谈1. 问:WORD 里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同?答:分节,每节可以设置不同的页眉。

mfc 应用程序的退出

mfc 应用程序的退出

6.应用程序的退出一个Windows应用程序启动之后,一般是进入消息循环,等待或者处理用户的输入,直到用户关闭应用程序窗口,退出应用程序为止。

例如,用户按主窗口的关闭按钮,或者选择执行系统菜单“关闭”,或者从“文件”菜单选择执行“退出”,都会导致主窗口被关闭。

当用户从“文件”菜单选择执行“退出”时,将发送MFC标准命令消息ID_APP_EXIT。

MFC实现了函数CWinApp::OnAppExit()来完成对该命令消息的缺省处理。

void CWinApp::OnAppExit(){// same as double-clicking on main window close boxASSERT(m_pMainWnd != NULL);m_pMainWnd->SendMessage(WM_CLOSE);}可以看出,其实现是向主窗口发送WM_CLOSE消息。

主窗口处理完WM_CLOSE消息之后,关闭窗口,发送WM_QUIT消息,退出消息循环(见图5-3),进而退出整个应用程序。

1.边框窗口对WM_CLOSE的处理MFC提供了函数CFrameWnd::OnClose来处理各类边框窗口的关闭:不仅包括SDI的边框窗口(从CFrameWnd派生),而且包括MDI的主边框窗口(从CMDIFrameWnd派生)或者文档边框窗口(从CMDIChildWnd派生)的关闭。

该函数的原型如下,流程如图6-1所示:void CFrameWnd::OnClose()从图6-1中可以看出,它首先判断是否可以关闭窗口(m_lpfnCloseProc是函数指针类型的成员变量,用于打印预览等情况下),然后,根据具体情况进行处理:∙如果是主窗口被关闭,则关闭程序的所有文档,销毁所有窗口,退出程序;∙如果不是主窗口被关闭,则是文档边框窗口被关闭,又分两种情况:若该窗口所显示的文档被且仅被该窗口显示,则关闭文档和文档窗口并销毁窗口;若该窗口显示的文档还被其他文档边框窗口所显示,则仅仅关闭和销毁文档窗口。

关于windows7的一个关机小程序(控制台)

关于windows7的一个关机小程序(控制台)

[注意]:本代码围绕at和shutdown指令编写的程序,主要用于windows7的(倒计时/定时)关机操作(由于at指令被windows10弃用,所以windows10使用会受到很大的限制甚至无法使用)打印的时候一些表示方式:shutdown /s :关闭系统shutdown /s /t 600 :开始倒计时600秒后关闭系统15:00 shutdown /s :15:00后按默认方式关机15:00 shutdown /s /t 600 :15:00提醒并开始倒计时600秒后关闭系统本代码完全安全无病毒,若在进行设置(倒计时/定时)关机时,安全软件发出拦截警告,请允许运行最后,本代码开放(在windows7关机小程序.cpp文件内),允许任意复制、粘贴、修改和发布。

以下是源代码(建议复制到*.cpp文件内查看)#include"stdio.h"#include "windows.h"#include"string.h"#include "stdlib.h"#include"conio.h"//int _System(const char * cmd, char *pRetMsg, intmsg_len); int menu(char *opt);//主菜单函数int menu1();int menu2();int main(){char opt[32]={0};while(1){menu1();printf("1>---------------------------------------------------------------------------<1 \n");printf("1>请输入当前主菜单操作:");fgets(opt,sizeof(opt),stdin);opt[strlen(opt)-1]='\0';printf("1>---------------------------------------------------------------------------<1 \n");if (strcmp(opt,"5")==0||strcmp(opt,"离开")==0||strcmp(opt,"Go away")==0)return 0;menu(opt);printf("\n");system("pause");system("cls");}return 0;}int menu(char *opt)//主菜单函数{if (strcmp(opt,"1")==0||strcmp(opt,"取消本次关机")==0||strcmp(opt,"Cancel this shutdown")==0) {system("shutdown -a");return 1;}if (strcmp(opt,"2")==0||strcmp(opt,"设置关机")==0||strcmp(opt,"Set off")==0){char opt1[32]={0};char sec[16]="/t ";char mould1[32]="at ";char mould2[32]=" shutdown /s ";printf("1>请输入关机模式《倒计时/定时》:");fgets(opt1,sizeof(opt1),stdin);opt1[strlen(opt1)-1]='\0';if(strcmp(opt1,"倒计时")==0){printf("1>请输入倒计时秒数:");fgets(sec+3,sizeof(sec),stdin);sec[strlen(sec)-1]='\0';strcat_s(mould2,sizeof(mould2),sec);printf("\n");system(mould2);}if(strcmp(opt1,"定时")==0){printf("1>请输入时间(24小时制(24:00)):");fgets(mould1+3,sizeof(mould1),stdin);mould1[strlen(mould1)-1]='\0';if(strlen(mould1)!=strlen("at 22:00")&&strlen(mould1)!=strlen("at 22:00")&&strlen(mould1)!=strlen("at 2:00")&&strlen(mould1)!=strlen("at 2:00")){printf("!>输入格式错误;格式如(24:00/0:00)\n");return -2;}strcat_s(mould1,sizeof(mould1),mould2);printf("1>请输入提醒倒计时秒数[60]:");fgets(sec+3,sizeof(sec),stdin);sec[strlen(sec)-1]='\0';if(strlen(sec)>strlen("at "))strcat_s(mould1,sizeof(mould1),sec);printf("\n");system(mould1);}}if (strcmp(opt,"3")==0||strcmp(opt,"打印所有计划")==0||strcmp(opt,"Print all plans")==0){system("at");}if (strcmp(opt,"4")==0||strcmp(opt,"删除定时计划")==0||strcmp(opt,"Delete work plan")==0){while (1){char opt1[32]={0};char mould1[16]="at ";char mould2[16]=" /delete ";menu2();printf("1>请输入您的选择:");fgets(opt1,sizeof(opt1),stdin);opt1[strlen(opt1)-1]='\0';system("at");if (strcmp(opt1,"1")==0||strcmp(opt1,"离开")==0||strcmp(opt1,"Go away")==0)return 0;if (strcmp(opt1,"2")==0||strcmp(opt1,"删除全部计划")==0||strcmp(opt1,"Delete all plans")==0) {printf("\n");system("at /delete");return 0;}if (strcmp(opt1,"3")==0||strcmp(opt1,"按ID删除计划")==0||strcmp(opt1,"Delete plan by ID")==0){printf("1>根据上表输入要删除的计划的ID:");fgets(mould1+3,sizeof(mould1),stdin);mould1[strlen(mould1)-1]='\0';printf("\n");system(mould1);printf("1>确定结束计划(Y/N)\n");int x=getche();if(x=='y'||x=='Y'){strcat_s(mould1,sizeof(mould1),mould2);printf("\n");system(mould1);printf("1>已删除该计划\n");}}}}return 0;}int menu1(){printf("1>---------------------------------------------------------------------------<1 \n");printf("1>《主菜单》<1\n");printf("1> 1取消本次关机(Cancel this shutdown) 2设置关机(Set off) <1\n");printf("1> 3打印所有计划(Print all plans) 4删除定时计划(Delete work plan)<1\n");printf("1> 5离开(Go away) <1\n");printf("1>---------------------------------------------------------------------------<1 \n");return 0;}int menu2(){printf("1>---------------------------------------------------------------------------<1 \n");printf("1>《4号子菜单》<1\n");printf("1> 1离开(Go away) 2删除全部计划(Delete all plans) <1\n");printf("1> 3按ID删除计划(Delete plan by ID) <1\n");printf("1><1\n");printf("1>---------------------------------------------------------------------------<1 \n");return 0;}。

关机程序回答问题,c++源代码

关机程序回答问题,c++源代码
int cx=GetSystemMetrics(SM_CXFULLSCREEN);
int cy=GetSystemMetrics(SM_CYFULLSCREEN);
int iTestDlgWidth=500;
int iTestDlgHeight=230;
hTestDlgWnd=CreateWindowEx(WS_EX_TOOLWINDOW,
#include <Windows.h>
#include <tchar.h&g;
TCHAR* szQuestion=TEXT("100的100次方是多少?(快回答,否则30秒后关机)");
TCHAR* szAnswer=TEXT("不知道");
WNDPROC oldEditProc=NULL;
//system("shutdown /s");
//SystemReboot();
}
}
break;
}
return (*oldButtonProc)(hWnd,message,wParam,lParam);
}
BOOL SystemReboot()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);
if (GetLastError() != ERROR_SUCCESS)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件学院大作业任务书
题目:用mfc制作关机程序
专业:计算机软件
班级:112班
姓名和学号:张文斌8000611074
1.作业分析
1.1项目介绍
制作一个自动关机程序,到指定时间可以关机,并且可以有取消操作和显
示当前时间的功能
1.2 功能需求
1.可以显示系统时间及日期
2.选择关机时间,当系统时间和关机时间重合时关机
3.可以有取消操作的功能
4.显示距离关机还有多长时间
2.分析
2.1需要解决的问题
1.添加各个控件并添加相应功能
2.获取系统版本号并获取关机权限
3.如果当前时间大于设定时间,则显示在第二天的设定时间关机2.2程序流程图


开始
显示系统时间
设置关机时间
关机剩余时间取消关机关机结束
3.程序设计
3.1主要函数
BOOL Main_OnInitDialog(HWND hwnd,HWND hwndFocus,LPARAM lParam);
void Main_OnCommand(HWND hwnd,UINT id,HWND hwndCtr,UINT codeNotify);
void Main_OnClose(HWND hwnd);
3.2主要功能及实现
3.2.1在初始化函数里设置定时器
BOOL Main_OnInitDialog(HWND hwnd,HWND hwndFocus,LPARAM lParam)//初始化函数
{
SetTimer(hwnd,1,1000,ShowTime);//定时器,1000ms 运行一次,1为定时器ID,ShowTime为运行函数
return true;
}
3.2.2定时器代码,显示时间
void CALLBACK ShowTime(HWND hwnd,UINT message,UINT uTimerID,DWORD dwTime)
{
SYSTEMTIME Time;//设置时间结构体
GetLocalTime(&Time);//获得电脑时间
TCHAR time[100];//定义辅助数组
wsprintf(time,"%02d:%02d:%02d %d/%02d/%02d",
Time.wHour,Time.wMinute,Time.wSecond,Time.wYear,Time.wMonth,Time.wDay);//得到时间字符
SetDlgItemText(hwnd,IDC_STATICNOW,time);//将时间字符串显示到
IDC_STATICNOW控件里
3.2.3确定时间的有效性,取得用户确认
case IDC_BUTTON1://"确定关机"按钮的ID
{
if(false == IsClose)
{
UINT Hour ,Min ,Sec;//定义小时,分钟,秒钟变量
TCHAR GetTime[100];//定义辅助字符串
GetDlgItemText(hwnd,IDC_DATETIMEPICKER1,GetTime,sizeof(GetTime));//得到时间选取
sscanf(GetTime,"%d:%d:%d",&Hour,&Min,&Sec);//将字符串里的值分别赋给他们三个
//sscanf是#include<stdio.h>里的函数
//以下是检验时间有效性
SYSTEMTIME Time;
GetLocalTime(&Time);
//LONG NTime,GTime;//定义现在时间和得到的时间总秒数变量
//由于之后的定时器2需要用到GTime变量,所以这里将Gtime变为全局变量
LONG NTime;
GTime=Hour * 3600 + Min * 60 + Sec;
NTime = Time.wHour *3600+ Time.wMinute * 60+Time.wSecond;//现在的时间
if((NTime)>=GTime)
{
UINT i;
i=MessageBox(hwnd,TEXT("所选取的时间为第二天!\n继续请点击Yes,重新选择请点击No"),
TEXT("提示"),MB_YESNO|MB_ICONQUESTION);//的值为所选择的按钮id
if(IDNO==i)
break;
}
3.2.
4.设置全局变量,作为定时器检测关机
IsClose=true;//开始检查时间
3 .2.5时间检测代码
if(true== IsClose)
{
LONG NTime;
NTime = Time.wHour*3600 + Time.wMinute*60+Time.wSecond ;
LONG Remain = (GTime - NTime);//定义变量,得到剩余时间总秒数
if(Remain < 0)
Remain =3600 *24 + Remain;
TCHAR cRemain[100];
wsprintf(cRemain,"距离关机:%02d:%02d:%02d",Remain/3600,(Remain/60)%60,Remain%60);
SetDlgItemText(hwnd,IDC_STATICREMAIN,cRemain);
if(Remain == 0)
{
ShutDown(hwnd);//自定义函数,关机函数
}
}
}
3.2.6.关机代码
void ShutDown(HWND hwnd)
{
OSVERSIONINFO os;
os.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&os);//获取系统版本
if(VER_PLATFORM_WIN32_NT==os.dwPlatformId)//32位操作系统
{
HANDLE handle;
TOKEN_PRIVILEGES tkp;
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_Q UERY,&handle);
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;//one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(handle,FALSE,&tkp , 0 ,(PTOKEN_PRIVILEGES)NULL,0);
if (GetLastError()!= ERROR_SUCCESS)//确定权限正确
{
MessageBox(hwnd,"AdjusTokenPrivileges 权限出错!","error",MB_OK|MB_ICONERROR);
}
}
ExitWindowsEx(EWX_SHUTDOWN,0);//开始关机
4.程序调试及执行4.1程序调试没有错误
4.2 开始页面
4.3 设定关机时间
4.4 退出程序
5.小结
通过日常的学习和练习,较为初步的了解了mfc,并且通过同学的帮助,完成了这次的程序。

还有很多需要改进的地方,希望老师能提出来。

相关文档
最新文档