使用 Qt 的 System Tray Icon Example 作为起点...
您需要在项目中添加一个systray.rc 文件,并在Qmake 项目文件(systray.pro)中声明它,如下所示:
RC_FILE = systray.rc
该行将指示构建系统使用resource compiler 编译systray.rc 文件以生成将链接到systray.exe 程序的systray.res 文件。
这是一个示例systray.rc 文件:
LANGUAGE 9, 1
1 VERSIONINFO
FILEVERSION 1, 0, 0, 0
PRODUCTVERSION 1, 0, 0, 0
FILEOS 4
FILETYPE 1
{
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
VALUE "CompanyName", "Contoso"
VALUE "FileDescription", "SysTray demo program"
VALUE "FileVersion", "1.0.0.0"
VALUE "InternalName", "systray"
VALUE "LegalCopyright", "Copyright \251 2020 Your Name"
VALUE "OriginalFilename", "systray.exe"
VALUE "ProductName", "SysTray Demo"
VALUE "ProductVersion", "1.0.0"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0409, 1252
}
}
LANGUAGE 10, 3
1 VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEOS 0x04
FILETYPE 0x1
{
BLOCK "StringFileInfo"
{
BLOCK "0C0A04E4"
{
VALUE "CompanyName", "Contoso"
VALUE "FileDescription", "Programa demostrativo SysTray"
VALUE "FileVersion", "1.0.0.0"
VALUE "InternalName", "systray"
VALUE "LegalCopyright", "Copyright \xA9 2020 Tu Nombre"
VALUE "OriginalFilename", "systray.exe"
VALUE "ProductName", "Demo SysTray"
VALUE "ProductVersion", "1.0.0"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0C0A 0x04E4
}
}
此示例包含两个VERSIONINFO 块资源,一个是英语,另一个是西班牙语。可执行文件systray.exe 将嵌入这两个资源。 Windows 将选择其中之一在 Windows 资源管理器中向用户显示程序属性,当显示 toast 通知时,FileDescription 值将成为您的页脚。您无法删除它,但您可以为每种语言赋予您想要的任何值。
Windows 会根据 Windows 配置自动确定要显示的资源。为LANG_NEUTRAL 包含一个块可能是个好主意(0,中性语言)。请参阅language identifier constants。