由于本人记性不太好,晚上经常忘记关电脑,白白浪费了很多的电。在网上也找了一些定时关机的软件,想到最近自己也在学习VC++,就想自己写一个定时关机的小程序,正好也可以检验自己所学的东西。

程序源码下载地址:点击下载

先来看看效果图:

写的比较简陋,但是只要能实现功能就好了。
写Win32应用程序首先要有WinMain函数:
int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);

g_hInstance = hInstance;

DialogBox(hInstance, (LPCTSTR)IDD_MAIN, NULL, DlgProc);

return 0;
}

在WinMain中调用DailogBox()弹出一个对话框,下面就是对消息的处理。
INT_PTR CALLBACK DlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
int wmId;

switch(uMsg)
{
case WM_INITDIALOG:
g_hWnd = hWnd;
InitDialog();
break;

case WM_CLOSE:
Shell_NotifyIcon(NIM_DELETE, &g_nidTray);
EndDialog(hWnd, 0);

break;

case WM_TIMER:
ProcessTimer();
break;

case WM_SIZE:
if(wParam == SIZE_MINIMIZED)
{
ShowWindow(g_hWnd, SW_HIDE);
}
break;

case NW_SHELLNOTIFY:
switch(lParam)
{
case WM_LBUTTONDBLCLK:
ShowWindow(g_hWnd, SW_SHOWDEFAULT);
SetForegroundWindow(g_hWnd);
break;

case WM_RBUTTONUP:
{
POINT ptPosition;
GetCursorPos(&ptPosition);
SetForegroundWindow(g_hWnd);
TrackPopupMenu(GetSubMenu(g_hMenu, 0), TPM_LEFTALIGN | TPM_LEFTBUTTON, ptPosition.x, ptPosition.y, 0, g_hWnd, NULL);
}
break;
}
break;

case WM_COMMAND:
wmId = LOWORD(wParam);

switch(wmId)
{
case IDBTN_SHUTDOWN:
DateTime_GetSystemtime(GetDlgItem(g_hWnd, IDDT_TIME), &g_stShutdown);
SetTimer(hWnd, ID_TIMER, 1000, NULL);
ChangeEnable(FALSE);
break;

case IDBTN_CANCEL:
KillTimer(hWnd, ID_TIMER);
UpdateRemainTime(NULL);
ChangeEnable(TRUE);
break;

case IDM_SHOW:
ShowWindow(g_hWnd, SW_SHOWDEFAULT);
SetForegroundWindow(g_hWnd);
break;

case IDM_EXIT:
SendMessage(g_hWnd, WM_CLOSE, 0, 0L);
break;

default:
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
break;
}

return 0;
}

主体部分就是上面的内容,想要完整的程序源码可以去下载。
程序源码下载地址:点击下载

用Win32写的定时关机程序相关推荐

  1. 用bat写一个定时关机程序

    用Windows自带的命令行工具shutdown.exe来编写批处理定时关机程序.下面是一个简单的bat脚本示例: 方法一 设置秒数关机 打开记事本复制下面信息进去->另存为.bat文件-> ...

  2. c语言定时开关程序,C语言写的简单的定时关机程序

    写一个定时关机的小程序,可以立即关闭计算机,也可以一段时间后关闭计算机. 这里主要考察system()命令. 代码实现: #include #include #include int main() { ...

  3. java语句电脑定时关机_月光软件站 - 编程文档 - Java - windows定时关机程序

    应网友yangxjn需要写的一个windows定时关机程序 . /** * Created by IntelliJ IDEA. * autor:cofbean * Date: 2004-3-10 * ...

  4. c 语言让电脑自动关机,C语言编写简单的定时关机程序

    写一个定时关机的小程序,可以立即关闭计算机,也可以一段时间后关闭计算机. 这里主要考察system()命令. 代码实现: #include #include #include int main() { ...

  5. c语言怎么自定义关机时间,C语言编写简单的定时关机程序

    搜索热词 写一个定时关机的小程序,可以立即关闭计算机,也可以一段时间后关闭计算机. 这里主要考察system()命令. 代码实现: #include #include #include int mai ...

  6. Swing定时关机程序

    本人新手一个,前几天看了一个网上写的定时关机小程序,我就尝试写了一个,程序很简单,毕竟我学习时间还是很短暂. 转载于:https://blog.51cto.com/listar/1198088

  7. Java自动定时关机程序

    这是本人的第一次写Java博客,先来写一个简单的,很多小伙伴以前应该都试过自动定时关机,这次给大家带来自动定时关机的代码和取消定时关机的代码. import java.io.IOException;p ...

  8. Python-Tkinter和PyInstaller简介及定时关机程序的简易实现

    欢迎转载,转载请注明出处,感谢! Tkinter简介 Tkinter的基本概念 1. Widgets(窗口小部件) 2. Geometry Management(几何管理) 3. Event Hand ...

  9. 如何用C语言写一段关机程序,恶搞代码,很简单的呦

    如何用C语言去写一段关机程序? 有的初学者觉得C语言编程太枯燥了,想要写个程序来太难了,甚至有的人在学习了C之后就觉得C语言只能去写一些黑白框里的简单程序,其实不是的,C语言是一种面向过程的开发语言, ...

最新文章

  1. linux cat 查看文件内容 不带#号的,Linux下如何不用cat命令读取文件内容
  2. 最新开源无监督单目深度估计方法,解决复杂室内场景难训练问题,效果性能远超SOTA...
  3. Nature子刊:宏基因组组装基因组实现谱系解析
  4. python获取文件路径
  5. 使用%的符号问题(只与被除数有关)
  6. ORACLE 导空表结构
  7. 寻找最大的K个数,Top K问题的堆实现
  8. ubuntu搭建nodejs生产环境——快速部署手册
  9. 【script】python多线程模块threading的使用
  10. 果断放弃gnome 3
  11. nginx linux详细安装部署教程,Nginx Linux详细安装及部署实战
  12. Nginx端口映射(外网访问)
  13. 【美赛】全面助力2023年美国大学生数学建模竞赛,祝大家取得好成绩
  14. ANSYS APDL学习(5):ANSYS输入文件input file 的编写和调试方法
  15. 数据库插入数据时报错(使用sqlyog创建数据库表插入中文数据时报错Incorrect string value: ‘\xE4\xBB\x8E\xE5\x85\xA5…’ for column ‘)
  16. ⌈Linux_感受系统美学⌋ 一步一步迈向系统底层 - 寻觅Linux奥秘,探寻Linux下权限管理周边属性
  17. 你有多久没有体会过“饥饿”的感觉?写在袁隆平仙逝的第7天
  18. 木纤维增强聚丙烯复合材料:压缩和注塑成型工艺
  19. JSP与JavaScript交互之(一)成绩信息输入的奖学金评定
  20. Spring-04-Spring的入门配置

热门文章

  1. asp.net控件产品技术文档中文版
  2. HttpClient连接池小记
  3. Locality Sensitive Hashing原理与实现
  4. iOS宝藏App,让你的iPhone好用数倍不止
  5. linux基础22——killall
  6. 海南今年研究降低引进人才住房公积金贷款门槛
  7. 服务器崩溃的集中原因
  8. 最新FPN | CFPNet即插即用,助力检测涨点,YOLOX/YOLOv5均有效
  9. 去哪里找自媒体视频剪辑中的视频素材?
  10. android stuido创建虚拟机出现VT-x is disabled in BIOS问题