0

バックグラウンド処理にトレイアイコンを追加したい。ところで、プログラムを実行するためのユーザー アカウント (例: SYSTEM) でない場合は、トレイ アイコンを追加しないでください。私のアカウントを使用している場合、機能します。プログラムを実行するためにユーザーアカウントではなくトレイアイコンを追加するには?

NOTIFYICONDATA nid;

ZeroMemory(&nid, sizeof(NOTIFYICONDATA));
nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = hWnd;
nid.uFlags =  NIF_INFO|NIF_ICON|NIF_TIP; 

    sprintf(nid.szInfoTitle, "title"); 
    sprintf(nid.szInfo, "infomation"); 
    sprintf(nid.szTip, "tip");

nid.dwInfoFlags = NIIF_INFO;

if(g_UpdaterInfo.osver == cWinXP)
{
    nid.uTimeout = 3000;
}

nid.uID = IDI_ICON;
    nid.hIcon = LoadIcon(_AtlBaseModule.GetModuleInstance(), MAKEINTRESOURCE(IDI_ICON));

BOOL add = Shell_NotifyIcon(NIM_ADD, &nid);
DWORD result = GetLastError();
CString msg;
msg.Format("Tray AddIcon: %d", result);
FileLog(LOG_FILE, msg);
if(!add)
    return FALSE;

return TRUE;
4

2 に答える 2