长沙到怀化火车票:关机小程序
来源:百度文库 编辑:九乡新闻网 时间:2024/04/18 17:52:09
#include "stdafx.h"
#include
#include
#include "resource.h"
#include "MainDlg.h"/*
Template designed by RuPeng.com. Please visit http://www.rupeng.com for more information
如鹏网(http://www.rupeng.com)大学生计算机学习社区,提供大量免费视频学习教程,提供个性化一对一学习指导
*/
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
} return FALSE;
}//调整进程令牌特权,提权
VOID AdJustTokenPrivilege()
{
TOKEN_PRIVILEGES tkp;
HANDLE hToken;
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
{
MessageBox(NULL,TEXT("打开进程令牌失败!"),TEXT("错误"),MB_OK|MB_ICONHAND);
return;
}
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);
if(GetLastError()!=ERROR_SUCCESS)
{
MessageBox(NULL,TEXT("令牌使能操作失败!"),TEXT(""),MB_OK|MB_ICONHAND);
return;
}
}void CALLBACK MyTimerProc(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime)
{
SYSTEMTIME stLocal;
GetLocalTime(&stLocal);
TCHAR strTime[256];
wsprintf(strTime,"%i-%i-%i %i:%i:%i",stLocal.wYear,stLocal.wMonth,stLocal.wDay,
stLocal.wHour,stLocal.wMinute,stLocal.wSecond);
SetDlgItemText(hwnd,IDC_EDITCURTIME,strTime);
//设置时间
TCHAR strSetTime_SD[256];//设置关机时间
TCHAR strSetTime_CWD[256];//设置关闭显示器时间
GetDlgItemText(hwnd,IDC_EDITSETSHUTDOWN,strSetTime_SD,sizeof(strSetTime_SD));
GetDlgItemText(hwnd,IDC_EDITSETPOWEROFF,strSetTime_CWD,sizeof(strSetTime_CWD));
//获取复选框状态
int check_SD=Button_GetCheck(GetDlgItem(hwnd,IDC_CHECKSDBYTIME));
int check_CWD=Button_GetCheck(GetDlgItem(hwnd,IDC_CHECKCWDBYTIME));
if(BST_CHECKED==check_SD)
{
if(strcmp(strTime,strSetTime_SD)==0)
{
AdJustTokenPrivilege();
//InitiateSystemShutdown(NULL,"正在关机",60,true,true); //两个函数都OK
ExitWindowsEx(EWX_SHUTDOWN|EWX_POWEROFF,0);
}
}
if(BST_CHECKED==check_CWD)
{
if(strcmp(strTime,strSetTime_CWD)==0)
{
SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);
Button_SetCheck(GetDlgItem(hwnd,IDC_CHECKCWDBYTIME),BST_UNCHECKED);
Button_Enable(GetDlgItem(hwnd,IDC_EDITSETPOWEROFF),TRUE);
}
}
}void CALLBACK MyTimerProc1(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime)
{
}BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
SetTimer(hwnd,0,1000,MyTimerProc);
SetTimer(hwnd,1,5000,MyTimerProc1);
return TRUE;
}void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
case ID_MENUOPEN:
{
MessageBox(hwnd,TEXT("文件d:\Document and Settings\Adminstrator"),TEXT("记事本"),MB_YESNOCANCEL|MB_ICONWARNING);
}
break;
case ID_MENUSAVE:
{
//MessageBox(hwnd,TEXT("文件C:\Document and Settings\Adminstrator\桌面"),TEXT("记事本"),MB_YESNOCANCEL);
MessageBox(hwnd,TEXT("文件c:\Document and Settings\Adminstrator"),TEXT("记事本"),MB_YESNOCANCEL|MB_ICONWARNING);
}
break;
case ID_MENUCLEAR:
{
SetDlgItemText(hwnd,IDC_EDITNOTEPAD,"");
}
case ID_MENUABOUT:
{
MessageBox(hwnd,TEXT("在校不迷茫,毕业即辉煌"),TEXT("简易记事本v1.0"),MB_OK);
}
break;
case ID_MENUABOUTHH:
{
MessageBox(hwnd,TEXT("换行指令:CTRL+ENTER"),TEXT("谢谢使用"),MB_OK);
}
break;
//复选框状态
case IDC_CHECKSDBYTIME:
{
int check_SD=Button_GetCheck(GetDlgItem(hwnd,IDC_CHECKSDBYTIME));
if(BST_CHECKED==check_SD)
{
Button_Enable(GetDlgItem(hwnd,IDC_EDITSETSHUTDOWN),FALSE);
}
if(BST_UNCHECKED==check_SD)
{
Button_Enable(GetDlgItem(hwnd,IDC_EDITSETSHUTDOWN),TRUE);
}
}
break;
case IDC_CHECKCWDBYTIME:
{
int check_CWD=Button_GetCheck(GetDlgItem(hwnd,IDC_CHECKCWDBYTIME));
if(BST_CHECKED==check_CWD)
{
Button_Enable(GetDlgItem(hwnd,IDC_EDITSETPOWEROFF),FALSE);
}
if(BST_UNCHECKED==check_CWD)
{
Button_Enable(GetDlgItem(hwnd,IDC_EDITSETPOWEROFF),TRUE);
}
}
break;
//立即关机
case IDC_BUTTONSD:
{
int ret=MessageBox(hwnd,TEXT("是否立即关闭计算机?"),TEXT("警告"),MB_YESNO|MB_ICONHAND);
if(IDYES==ret)
{
AdJustTokenPrivilege();
ExitWindowsEx(EWX_SHUTDOWN|EWX_POWEROFF,0);
}
if(IDNO==ret)
{
return;
}
}
break;
//重启计算机
case IDC_BUTTONRE:
{
int ret=MessageBox(hwnd,TEXT("是否重启计算机?"),TEXT("警告"),MB_YESNO|MB_ICONHAND);
if(IDYES==ret)
{
AdJustTokenPrivilege();
ExitWindowsEx(EWX_REBOOT,0);
}
if(IDNO==ret)
{
return;
}
}
break;
//注销计算机
case IDC_BUTTONZX:
{
int ret=MessageBox(hwnd,TEXT("是否注销计算机?"),TEXT("警告"),MB_YESNO|MB_ICONHAND);
if(IDYES==ret)
{
AdJustTokenPrivilege();
ExitWindowsEx(EWX_LOGOFF,0);
}
if(IDNO==ret)
{
return;
}
}
break;
//关闭显示器
case IDC_BUTTONCWD:
{
int ret = MessageBox(hwnd,TEXT("是否关闭显示器?"),TEXT("警告"),MB_YESNO|MB_ICONHAND);
if(IDYES==ret)
{
SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);
}
if(IDNO==ret)
{
return;
}
}
break;
default:
break;
}
}void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}这是主程序 带有记事本的模块 可以在resource中添加Icon位图或者Menu菜单等等..... 当然这个程序比较简单的了 带有记事本的一个模版 至于功能可以在程序中添加
#include
#include
#include "resource.h"
#include "MainDlg.h"/*
Template designed by RuPeng.com. Please visit http://www.rupeng.com for more information
如鹏网(http://www.rupeng.com)大学生计算机学习社区,提供大量免费视频学习教程,提供个性化一对一学习指导
*/
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
} return FALSE;
}//调整进程令牌特权,提权
VOID AdJustTokenPrivilege()
{
TOKEN_PRIVILEGES tkp;
HANDLE hToken;
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
{
MessageBox(NULL,TEXT("打开进程令牌失败!"),TEXT("错误"),MB_OK|MB_ICONHAND);
return;
}
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);
if(GetLastError()!=ERROR_SUCCESS)
{
MessageBox(NULL,TEXT("令牌使能操作失败!"),TEXT(""),MB_OK|MB_ICONHAND);
return;
}
}void CALLBACK MyTimerProc(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime)
{
SYSTEMTIME stLocal;
GetLocalTime(&stLocal);
TCHAR strTime[256];
wsprintf(strTime,"%i-%i-%i %i:%i:%i",stLocal.wYear,stLocal.wMonth,stLocal.wDay,
stLocal.wHour,stLocal.wMinute,stLocal.wSecond);
SetDlgItemText(hwnd,IDC_EDITCURTIME,strTime);
//设置时间
TCHAR strSetTime_SD[256];//设置关机时间
TCHAR strSetTime_CWD[256];//设置关闭显示器时间
GetDlgItemText(hwnd,IDC_EDITSETSHUTDOWN,strSetTime_SD,sizeof(strSetTime_SD));
GetDlgItemText(hwnd,IDC_EDITSETPOWEROFF,strSetTime_CWD,sizeof(strSetTime_CWD));
//获取复选框状态
int check_SD=Button_GetCheck(GetDlgItem(hwnd,IDC_CHECKSDBYTIME));
int check_CWD=Button_GetCheck(GetDlgItem(hwnd,IDC_CHECKCWDBYTIME));
if(BST_CHECKED==check_SD)
{
if(strcmp(strTime,strSetTime_SD)==0)
{
AdJustTokenPrivilege();
//InitiateSystemShutdown(NULL,"正在关机",60,true,true); //两个函数都OK
ExitWindowsEx(EWX_SHUTDOWN|EWX_POWEROFF,0);
}
}
if(BST_CHECKED==check_CWD)
{
if(strcmp(strTime,strSetTime_CWD)==0)
{
SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);
Button_SetCheck(GetDlgItem(hwnd,IDC_CHECKCWDBYTIME),BST_UNCHECKED);
Button_Enable(GetDlgItem(hwnd,IDC_EDITSETPOWEROFF),TRUE);
}
}
}void CALLBACK MyTimerProc1(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime)
{
}BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
SetTimer(hwnd,0,1000,MyTimerProc);
SetTimer(hwnd,1,5000,MyTimerProc1);
return TRUE;
}void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
case ID_MENUOPEN:
{
MessageBox(hwnd,TEXT("文件d:\Document and Settings\Adminstrator"),TEXT("记事本"),MB_YESNOCANCEL|MB_ICONWARNING);
}
break;
case ID_MENUSAVE:
{
//MessageBox(hwnd,TEXT("文件C:\Document and Settings\Adminstrator\桌面"),TEXT("记事本"),MB_YESNOCANCEL);
MessageBox(hwnd,TEXT("文件c:\Document and Settings\Adminstrator"),TEXT("记事本"),MB_YESNOCANCEL|MB_ICONWARNING);
}
break;
case ID_MENUCLEAR:
{
SetDlgItemText(hwnd,IDC_EDITNOTEPAD,"");
}
case ID_MENUABOUT:
{
MessageBox(hwnd,TEXT("在校不迷茫,毕业即辉煌"),TEXT("简易记事本v1.0"),MB_OK);
}
break;
case ID_MENUABOUTHH:
{
MessageBox(hwnd,TEXT("换行指令:CTRL+ENTER"),TEXT("谢谢使用"),MB_OK);
}
break;
//复选框状态
case IDC_CHECKSDBYTIME:
{
int check_SD=Button_GetCheck(GetDlgItem(hwnd,IDC_CHECKSDBYTIME));
if(BST_CHECKED==check_SD)
{
Button_Enable(GetDlgItem(hwnd,IDC_EDITSETSHUTDOWN),FALSE);
}
if(BST_UNCHECKED==check_SD)
{
Button_Enable(GetDlgItem(hwnd,IDC_EDITSETSHUTDOWN),TRUE);
}
}
break;
case IDC_CHECKCWDBYTIME:
{
int check_CWD=Button_GetCheck(GetDlgItem(hwnd,IDC_CHECKCWDBYTIME));
if(BST_CHECKED==check_CWD)
{
Button_Enable(GetDlgItem(hwnd,IDC_EDITSETPOWEROFF),FALSE);
}
if(BST_UNCHECKED==check_CWD)
{
Button_Enable(GetDlgItem(hwnd,IDC_EDITSETPOWEROFF),TRUE);
}
}
break;
//立即关机
case IDC_BUTTONSD:
{
int ret=MessageBox(hwnd,TEXT("是否立即关闭计算机?"),TEXT("警告"),MB_YESNO|MB_ICONHAND);
if(IDYES==ret)
{
AdJustTokenPrivilege();
ExitWindowsEx(EWX_SHUTDOWN|EWX_POWEROFF,0);
}
if(IDNO==ret)
{
return;
}
}
break;
//重启计算机
case IDC_BUTTONRE:
{
int ret=MessageBox(hwnd,TEXT("是否重启计算机?"),TEXT("警告"),MB_YESNO|MB_ICONHAND);
if(IDYES==ret)
{
AdJustTokenPrivilege();
ExitWindowsEx(EWX_REBOOT,0);
}
if(IDNO==ret)
{
return;
}
}
break;
//注销计算机
case IDC_BUTTONZX:
{
int ret=MessageBox(hwnd,TEXT("是否注销计算机?"),TEXT("警告"),MB_YESNO|MB_ICONHAND);
if(IDYES==ret)
{
AdJustTokenPrivilege();
ExitWindowsEx(EWX_LOGOFF,0);
}
if(IDNO==ret)
{
return;
}
}
break;
//关闭显示器
case IDC_BUTTONCWD:
{
int ret = MessageBox(hwnd,TEXT("是否关闭显示器?"),TEXT("警告"),MB_YESNO|MB_ICONHAND);
if(IDYES==ret)
{
SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);
}
if(IDNO==ret)
{
return;
}
}
break;
default:
break;
}
}void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}这是主程序 带有记事本的模块 可以在resource中添加Icon位图或者Menu菜单等等..... 当然这个程序比较简单的了 带有记事本的一个模版 至于功能可以在程序中添加
关机小程序
用Perl写的定时关机程序
与众不同的关机小技巧
安全关机的实用小技巧
卸载顽固程序小技巧
VB实用小程序2
小技巧:电脑还可以这样关机呢
小技巧:电脑还可以这样关机呢!
小技巧:电脑还可以这样关机呢
小技巧:电脑还可以这样关机呢!
整人VB小程序:蓝屏死机
MATLAB-数据处理-一个文件数据处理小程序
自制小程序与任意QQ聊天
10秒钟自制出小程序
二维小波变换算法程序2
小知识:Windows Vista/7中关机、睡眠和休眠的区别
【航空小知识】第六期:为什么飞机上手机要关机呢
关机函数
python 程序的性能分析优化(huffman编码程序性能分析的一个小结论)
一个下雪的小程序_c++ vc6.0
10秒钟自制出小程序 任意QQ号聊天
ylmfos:安装Windows有关库和软件的小程序
卸载顽固程序10个秘密小技巧
XP定时关机命令