屏幕右上角的永久工具提示



我有一点问题。我需要将工具提示放置在屏幕的右上角(我使用具有不同分辨率的几台不同计算机),在脚本终止之前,该工具提示不会消失,但会根据按下的热键更改其文本。谁能给我举个例子?我在谷歌上找到了几件事,但没有像我想要的那样。

例:

key_SIMPLE1:="F1"
key_SIMPLE2:="F2"
key_SIMPLE3:="F3"
key_COMPLEX1:="F4"

loop 
{
sleep 1

if GetKeyState(key_SIMPLE1)
{
Tooltip, Simple Mode 1
SetTimer, ResetTooltip, -500
}
if GetKeyState(key_SIMPLE2)
{
Tooltip, Simple Mode 2
SetTimer, ResetTooltip, -500
}
if GetKeyState(key_SIMPLE3)
{
Tooltip, Simple Mode 3
SetTimer, ResetTooltip, -500
}
if GetKeyState(key_COMPLEX1)
{
Tooltip, Complex Mode 1
SetTimer, ResetTooltip, -500
}

所以基本上我有一个工具提示,显示在鼠标位置,指示用户选择了什么。此工具提示消失。我有兴趣获得第二个工具提示(不会消失 - 默认情况下说"什么都没有"),它会根据按下的热键而变化。

因此,如果我按 F1,我会在鼠标附近看到一个工具提示,上面写着"简单模式 1"(这个消失了),右上角的第二个工具提示也显示"简单模式 1",不会消失。

然后,如果我按 F2,我会在鼠标附近看到一个工具提示,上面写着"简单模式 2"(这个消失了),第二个工具提示更新为"简单模式 2"。

这将在鼠标位置和屏幕右上角显示工具提示。鼠标光标工具提示在 1 秒后消失

CoordMode tooltip, screen
F1::show("Simple Mode 1")
F2::show("Simple Mode 2")
F3::show("Simple Mode 3")
show(text) {
tooltip %text%
tooltip %text%, A_ScreenWidth - 100, 0, 9
settimer clear_tool_tip, -1000
}
clear_tool_tip:
tooltip
return

按 F4 时,这将在屏幕右上角显示一个工具提示,并在按 F1、F2 或 F3 时将其删除。

CoordMode tooltip, screen
F1::
F2::
F3::tooltip ,,,,9
F4::tooltip  Blah Boo, A_ScreenWidth - 100, 0, 9

这个脚本应该让你开始。与其不断运行循环来检查模式,不如在按下热键时调用函数即可。

如果在多个显示器上使用,它将只显示在主显示器上。

F5 和F6将调用永久工具提示以保持在右上角,尽管不可能将其完全放在正确的角落。

F7 和F8将调用永久的 SplashText 标题栏以保留在右上角。你可以把它留在确切的角落,在我看来看起来更好。它具有隐藏最大化窗口的最小化和关闭图标的副作用。我通过 a) 将 SplashText 向下移动 20 像素和 b) 设置 TransColor 来解决这个问题,以便点击将落到它后面的窗口。

脚本关闭时,工具提示/启动文本将消失。

; will have issues with multiple monitors (will only show on main monitor)
; used to place tooltips relative to screen instead of active window
CoordMode, ToolTip ; https://autohotkey.com/docs/commands/CoordMode.htm
ShowSplash("Nothing", 300)
F5::ShowTooltip("Mode 5", 200)
F6::ShowTooltip("Mode 6", 200)
F7::ShowSplash("Mode 7", 300)
F8::ShowSplash("Mode 8", 300)
ShowTooltip(title, width) ; https://autohotkey.com/docs/commands/ToolTip.htm
{
Tooltip ; remove existing tooltip
Tooltip %title%, A_ScreenWidth - width, 0
}
ShowSplash(title, width) ; https://autohotkey.com/docs/commands/SplashTextOn.htm
{
SplashTextOff ; remove existing splash text
SplashTextOn, width, , %title%
WinMove, %title%, , A_ScreenWidth - width, 20 ; moved down a bit so can see close buttons in top corner
WinSet, TransColor, White, %title% ; allows to click through white, so can close windows under SplashText   
}

最新更新