【发布时间】:2009-12-07 08:10:22
【问题描述】:
我在 FormCreate 事件处理程序中使用以下代码来创建系统托盘图标。当我运行我的程序时,系统托盘图标显示正常。
我将我的应用程序设置为在 Windows 启动时自动启动。当我重新启动计算机时,我的应用程序进程已启动,但系统托盘图标从未出现。
我认为这可能与代码运行的时间有关,可能系统托盘还没有准备好填充。
我的应用程序在启动时通过它的 NSIS 安装程序运行: WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Run" "MyApp" "$INSTDIR\ MyApp.exe"
创建系统托盘图标的代码:
with TrayIconData do
begin
cbSize := SizeOf(TrayIconData);
Wnd := Handle;
uID := 0;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := WM_ICONTRAY;
hIcon := Application.Icon.Handle;
StrPCopy(szTip, Application.Title);
end;
Shell_NotifyIcon(NIM_ADD, @TrayIconData);
【问题讨论】:
标签: delphi startup system-tray