65.9K
CodeProject 正在变化。 阅读更多。
Home

BatteryX

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.65/5 (14投票s)

2005年7月27日

4分钟阅读

viewsIcon

56510

downloadIcon

778

BatteryX 显示您笔记本电脑的当前电源状态。

引言

查看压缩包内的说明文件以了解新增内容。

为什么选择 BatteryX

BatteryX 是每个笔记本电脑用户的“必备”软件。如果您不想总是使用鼠标查看 Windows 电池信息,可以使用此程序。BatteryX 几乎不占用资源。它具有智能的能源信息系统。BatteryX 默认情况下每 35 秒自动刷新一次,但用户也可以更改刷新时间。它还使用Windows 电源信息消息进行刷新。因此,如果您连接到外部电源设备,BatteryX 将显示“AC”。我使用这两个系统是因为 Windows 并不总是自动发送电源消息,所以为了保险起见,我还设置了刷新间隔。如果您连接到外部电源设备,则间隔计时器将停止,并在断开与外部电源设备的连接后再次启动。此系统可以节省资源。

兼容性

BatteryX 专为 Win XP 或更高版本设计,但也可能与 Win 2K 兼容。

刷新系统

基本系统

源代码

使用带有最新 Service Pack 的 VC++ 6.0 编译源代码!如果您想使用 VC++ .NET 2003 编译它,您也可以编译源代码,但是您需要更改GetDevicePowerState函数中的一个参数。此 API 在 VC++ 6.0 和 VC++ .NET 2003 中似乎有所不同。

如何使用源代码

如果您想以发布模式编译源代码,只需在发布模式下选择 battery2,否则在调试模式下选择 battery2。项目的其他所有部分都将以 battery2 所选择的模式进行编译。

按 Erstellen->Alles neu erstellen 以当前选择的模式编译项目的所有部分。(译者注:德语,意思是“构建->全部重新构建”)

我似乎安装了另一个版本的 VC++ 6.0。在我的版本中,::GetDevicePowerState只需要一个参数。其他版本需要两个参数,您可以在此处的第二部分看到。只需编辑适用于您电脑的方法!

使用插件 SDK

从 2.2 UPDATE2 版本开始,BatteryX 也支持动态插件。插件 SDK 的源代码也包含在软件包中。插件支持的主要思想:如果您创建了一个好的程序并想将其包含到 BatteryX 中,例如 CPU 信息、硬件信息、远程网络摄像头控制、wlan 状态等,您只需将源代码包含到 SDK 中并使用“启动”方法启动您的代码。您还必须设置插件版本(仅限版本 1)和内部名称。这是您随后可以在 BatteryX 的弹出菜单中看到的名称。

编译插件后,您将获得一个 DLL 文件。这就是插件。只需将其复制到Binaries目录中的“plugins”文件夹中。然后右键单击 BatteryX。然后您可以在弹出菜单中看到您自己编写的插件。选择它后,BatteryX 将调用插件中的“Start”方法。

在示例图片中,您可以看到新的插件。“显示对话框的测试插件”只是内部名称。顺便说一句,您不需要重新启动 BatteryX。每次选择弹出菜单时,都会列出新的正确插件列表;)。

目录结构如下……

顺便说一句:如果您现在使用 STRG-F5 编译,由于位置原因,插件将被加载。VC 从battery2而不是battery2\Binaries启动程序,因此只需直接启动 EXE 文件。之后,所有加载的插件都将正确列在弹出菜单中。(译者注:STRG-F5 是快捷键,表示调试运行)

带对话框的插件 SDK 1.0

我更新了插件 SDK v1.0,因为您可能在 DLL 中启动对话框时遇到一些问题。此代码现在包含用于窗口的 MFC 类代码和一个名为DoModal()的函数。

void DoModal()
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    CPluginDialog pd;
    pd.DoModal();
}

您需要插入AFX_MANAGE_STATE命令。如果您不包含这一行,对话框将无法启动。

致谢

  • 感谢 Herbert K. 的测试和提示。
  • 感谢 Daniel Chirca 提供CBattery
  • 感谢 David Forrester 提供CBitmapDialog
  • 感谢 Chris Maunder 提供CTestProgressCtrl
  • 感谢 Keith Rule 提供CMemDC类。
  • 感谢所有测试人员。

待办事项

  • 自动更新系统。
  • 集成到任务栏!!就像 IBM 电池一样。
  • 操作系统的兼容性测试。
  • 集成语音引擎(可能作为插件)。

查看包中的histroy.txt以了解新增内容。如果您对如何增强程序有任何想法,请告诉我。

© . All rights reserved.