我承认我是个标签囤积者。但至少我现在已经将它们分类到上下文窗口中,而且我希望 Windows 任务栏中的每个窗口都有不同的图标(不是标签栏,由图标控制)。如何实现呢?
举例来说,假设我有一个带有各种 StackExchange 选项卡的窗口,我希望将 StackExchange 徽标作为图标;另一个带有 GitHub 存储库的窗口应带有 GitHub 徽标;第三个窗口带有特定于项目的选项卡,我为其自定义了图标(或者只是 Firefox 徽标上方的彩色字母)。
我还会接受一种解决方案,即简单地使用每个窗口的第一个选项卡的图标,尽管我更喜欢独立于此。
答案1
您可以使用免费自动热键。
创建一个.ahk
文本文件并输入以下内容:
#Persistent
SetTitleMatchMode, 2 ; A window's title to contain the text anywhere
F9::
ChangeWindowIcon("title text", "\path\to\iconfile.ico")
ChangeWindowIcon(WinSpec, IconFile) {
hIcon := DllCall("LoadImage", uint, 0, str, IconFile, uint, 1, uint, 0, uint, 0, uint, uint 0x10)
if (!hIcon) {
MsgBox, "Icon file missing or invalid in `nChangeWindowIcon(" IconFile ", " WinSpec ")`n`n"
Throw "Icon file missing or invalid in `nChangeWindowIcon(" IconFile ", " WinSpec ")`n`n"
}
hWnd := WinExist(WinSpec)
if (!hWnd) {
MsgBox, Window Not Found
return "Window Not Found"
}
SendMessage, WM_SETICON:=0x80, ICON_SMALL:=0, hIcon,, ahk_id %hWnd% ; Set the window's small icon
SendMessage, WM_SETICON:=0x80, ICON_BIG:=1, hIcon,, ahk_id %hWnd% ; Set the window's big icon
SendMessage, WM_SETICON:=0x80, ICON_SMALL2:=2, hIcon,, ahk_id %hWnd% ; Set the window's small icon
}
该脚本设置为在点击 时激活F9,但您可以设置自己的键。根据需要添加对该函数的任意多个调用ChangeWindowIcon
,每个调用都带有以下参数:
- 标题中可以找到的独特文本
- 图标文件的完整地址
当脚本运行时,您可以右键单击托盘栏中的绿色 H 图标并选择退出以终止。如果有效,您还可以将其添加到启动组中,以便在登录时运行。
请注意,AutoHotkey 还可以启动您最喜欢的选项卡并在屏幕上排列它们的布局。AutoHotkey 的功能并不多不能做。