2009-06-09 46 views
26

我不想自定義在Windows 7任務欄中顯示的圖標。 當我的應用程序正在運行時,我可以通過更改主窗口圖標來完成此操作,但是當應用程序被固定時,會顯示exe圖標。更改固定的任務欄圖標(Windows 7)

如何將我的應用程序的任務欄圖標設置爲與嵌入在exe中的圖標不同的圖標?

沒有試過,這solution可能工作,但看起來很髒。


編輯:

我們的應用程序被編譯一次,但根據配置文件,功能是啓用或不那麼它是一個產品或其他。我們不想爲每個產品編譯一個exe文件。

上面的解決方案可能無法正常工作,因爲我的應用程序的很多實例可以安裝在不同的路徑中(所以最終會得到相同的exe文件名,但不同的圖標!),此註冊表項設計不佳或缺少某些東西?

+0

我會認爲不會支持這個,只是因爲如果我固定了一個圖標,我會認爲這個圖標以後不會變成別的東西。我可以理解的疊加層,但不是當點擊時變成Firefox圖標的IE圖標。 – 2009-06-17 20:31:55

+0

看到它:http://stackoverflow.com/questions/1285798/is-it-possible-to-change-a-console-windows-icon-from-net – 2012-09-12 12:46:08

回答

24

EDIT下面的信息是有點陳舊;所有新的Windows 7位是現在可作爲管理API,請訪問:http://code.msdn.microsoft.com/WindowsAPICodePack

有由調試大師Sasha Goldshtein新的任務欄API一個series of articles。你應該看看Overlay Icons and Progress Bars API

您可以在Microsoft Code上從Windows 7 Taskbar Developer Resources下載示例代碼。什麼你要找的是IMClient樣本:

的IMClient的示例演示 任務欄覆蓋圖標和任務欄 進度條怎麼可以點亮一個 應用程序的任務欄按鈕,而不是 依賴於額外的對話框或 的系統通知 區域(托盤)中的圖標。

alt text alt text alt text

我相信這將幫助你實現你想要的。

+0

我知道了,我已經在我的應用中使用了疊加圖標/ pgbar,但疊加與應用圖標不同。 當應用程序被固定並關閉時,覆蓋圖不顯示... – 2009-06-15 09:57:06

0

看看this blog。他做了一系列關於編程Windows 7任務欄的博客文章,所以也許這會讓你指向正確的方向。

1

您可以通過使用基於「Windows Vista Bridge」的名爲「Windows 7 Bridge」的庫來實現此目的。

這些是圍繞所有Vista和Windows 7本機功能的託管包裝。

更多信息可以發現here

+0

我知道這個庫,你能提供更多的信息(樣本...)如何實現這一目標? – 2009-06-09 09:59:21

1

但如果你創建一個應用程序,我不知道如果我理解你的問題..

,並把主窗口的圖標屬性,則該圖標將出現在任務欄中也。但是,如果您將其固定到任務欄,該圖標會消失。我對嗎?如果是這樣,請轉到項目屬性,然後在應用程序選項卡中,爲exe添加所需的圖標。現在,您將在固定任務欄時看到該圖標。

我用的東西都相同的圖標:P

+0

您對第一部分是正確的。 但是,無論配置文件是否存在,我的主窗口的圖標都不一樣。我希望這個圖標可以保留,甚至當應用程序被固定時,無需爲每個配置編譯一個exe文件。 – 2009-06-16 07:48:08

0

我現在不能不幸的是測試這個權利,但也許只是建立一個定期的,好老的快捷方式可能會解決這個問題?創建應用程序的快捷方式,更改圖標,然後固定快捷方式而不是應用程序本身?

將檢查的時候,我可以讓旁邊訪問我的Windows 7計算機...

16

當引腳的應用到任務欄,它只是會在以下目錄的快捷方式:

C:\Users\<User Name>\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar 

您應該能夠識別快捷方式的位置(即,獲取KnownFolders並從那裏開始工作,UserAppData應該是唯一的),然後使用P/Invoke(IShellLink),您可以更改快捷方式設置使用的圖標。該機器可能需要重新啓動才能生效,但它應該起作用。

如果在按住Shift的同時右鍵單擊固定的應用程序並選擇「屬性」,則可以看到快捷方式的「更改圖標」按鈕。這基本上是你需要用代碼來模擬的。

所有這些東西都可以用代碼完成,但是否認爲它們比註冊表設置更好取決於您。

1

據我所知,出於某種原因,您不能更改已經固定到任務欄的程序的圖標。要做到這一點,只需取消固定程序,找到它在開始菜單中,右鍵單擊 - 屬性 - 更改圖標。然後重新將其固定到任務欄,它會有新的圖標!

0

右鍵單擊固定圖標,在彈出窗口中看到程序標題,再次右鍵單擊並轉到屬性。您可以通過點擊 「更換圖標」來更改圖標。對我來說,它需要重新啓動才能完成更改。

-1

如果您想在任務欄中有一個直接導入某處的快捷方式,比如您的「我的文檔」目錄。簡單的修復。 。 。

將文件夾放入任務欄(創建圖像的快捷方式)。導航到放置快捷方式的目錄,右鍵單擊快捷方式並選擇「屬性」更改目標。選擇「常規」選項卡以更改快捷方式的名稱。該快捷方式被放在這裏:

C:\用戶[用戶] \應用程序數據\漫遊\微軟\的Internet Explorer \快速啓動\用戶置頂\任務

可以導航到該目錄並編輯的屬性「圖像」快捷方式。

相關問題