长沙到怀化火车票:关机小程序

来源:百度文库 编辑:九乡新闻网 时间: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菜单等等..... 当然这个程序比较简单的了 带有记事本的一个模版 至于功能可以在程序中添加