我一直在編寫一個程序來ping三個不同的網站,然後通知用戶他們是否有互聯網。原生C++ Systray應用程序問題
爲了讓這個程序能夠正常工作,我獲得了很多成功,這在很大程度上歸功於社區的出色表現。
我的代碼是用原生C++編寫的,因爲我知道最好的語言。我所希望的是讓社區指示我讓程序在系統托盤中運行而不使用.net編程。
我正在使用Visual Studio 2008,並且我的代碼使用安裝項目安裝。我會很感激你們可以給我看的任何幫助。謝謝。
我一直在編寫一個程序來ping三個不同的網站,然後通知用戶他們是否有互聯網。原生C++ Systray應用程序問題
爲了讓這個程序能夠正常工作,我獲得了很多成功,這在很大程度上歸功於社區的出色表現。
我的代碼是用原生C++編寫的,因爲我知道最好的語言。我所希望的是讓社區指示我讓程序在系統托盤中運行而不使用.net編程。
我正在使用Visual Studio 2008,並且我的代碼使用安裝項目安裝。我會很感激你們可以給我看的任何幫助。謝謝。
本機C++系統托盤應用程序基於Win32 Shell API Shell_NotifyIcon。
要增加你的圖標到任務欄中的你想是這樣的:
memset(&iconData, 0, sizeof(NOTIFYICONDATA));
iconData.hIcon = ::LoadIcon(hResourceModule, MAKEINTRESOURCE(IDR_MAINFRAME));
iconData.hIcon = ::LoadIcon(hResourceModule, MAKEINTRESOURCE(IDI_ICON));
iconData.cbSize = sizeof(NOTIFYICONDATA);
iconData.uFlags = NIF_ICON | NIF_TIP;
iconData.hWnd = this->m_hWnd;
strncpy(iconData.szTip, programTitle_buffer, programTitle_length);
if(iconData.hIcon)
{
Shell_NotifyIcon(NIM_ADD, &iconData);
}
要刪除的圖標,你想是這樣的:
Shell_NotifyIcon(NIM_DELETE, &iconData);
使用Shell_NotifyIcon函數。這裏有一個article,它比Win32文檔更類似於教程。
如果你想用C++來完成,你必須使用像Zildjohn01剛剛提到的那樣使用windows低級api。這並不難。您可以隨時看看這個舊的代碼項目文章:http://www.codeproject.com/kb/shell/systemtray.aspx