백그라운드 프로세스에 트레이 아이콘을 추가하고 싶습니다. 프로그램을 실행하는 사용자 계정 (예 : 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;
질문이 정말 혼란 스럽습니다. 프로그램이 관리자로 실행 중일 때 트레이 아이콘을 추가 하시겠습니까? – Brent81
아니요. 실제로이 프로세스는 Windows 작업입니다. 작업이 시작되었습니다, 나는 '시스템'계정으로 생성 된 작업에 트레이 아이콘을 표시하고 싶습니다. – andwella