【问题标题】:How a C++ windows dialog based program to get system a status from time to time基于 C++ windows 对话框的程序如何不时获取系统状态
【发布时间】:2025-12-17 16:50:02
【问题描述】:

我在这个项目的基础上做了一个程序:

http://www.codeproject.com/Articles/6003/Minimize-your-app-to-systray-in-easy-steps

此链接中的项目最初无法在 Visual Studio 2015 下运行,因此我进行了一些修复以运行。这是我到目前为止所做的项目:

https://github.com/mitko-z/BatteryAlarm

这个程序我想让它不时地获取一些系统信息,当事件发生时会出现一个弹出窗口。但是我对 C++ windows 窗体编程非常陌生,我不知道将这些检查放在项目文件中的哪个位置(或者我应该制作新文件???)。

如果有人可以给我一些建议......

提前致谢!

【问题讨论】:

    标签: c++ windows forms system status


    【解决方案1】:

    Windows Management Instrumentation 系统提供了一种方法,您的应用程序可以通过该方法接收系统事件通知(例如电池状态)。如果您是 C++ 和 COM 接口的新手,您可能会觉得有点不知所措,但 Microsoft 网站上提供了示例代码。看看https://msdn.microsoft.com/en-us/library/aa394582(v=vs.85).aspx

    【讨论】:

    • 感谢您的回答和此链接。但我认为信息太多,要做的事情太少。我知道使用哪个程序来获取电池状态。我唯一不知道的是将这个循环放在哪里(或使用一个,如果提供的话)在一段时间内检查电池状态,即我需要每 1 秒检查一次电池状态。
    • 如果您只想定期运行一些代码,您可以使用计时器。查看 SetTimer() 和 KillTimer() API 调用。计时器会将 WM_TIMER 消息发送到您的应用程序,然后可以触发您的电池检查。
    • 这是我的问题,我已经设法运行计时器。不过谢谢你的回答!