![用於存取系統托盤應用程式的熱鍵,Windows 7](https://rvso.com/image/1267887/%E7%94%A8%E6%96%BC%E5%AD%98%E5%8F%96%E7%B3%BB%E7%B5%B1%E6%89%98%E7%9B%A4%E6%87%89%E7%94%A8%E7%A8%8B%E5%BC%8F%E7%9A%84%E7%86%B1%E9%8D%B5%EF%BC%8CWindows%207.png)
有沒有辦法存取、移動和啟動系統托盤的元素?
答案1
根據 @Shinray 關於⊞ Win+B快捷方式的說法,我創建了這個自動熱鍵腳本:
#SingleInstance, force
CoordMode, Mouse, Screen
SetDefaultMouseSpeed, 0
RControl & 1::
jumper(1, "Enter")
Return
RControl & 2::
jumper(2, "SingleClick")
Return
jumper(position, action)
{
MouseGetPos, xpos, ypos
sendInput {LWinDown}{b}{LWinUp}{Right %position%}{Enter}
Sleep, 100
if(action = "Enter")
{
}
if(action = "SingleClick")
{
MouseClick, left
}
if(action = "DoubleClick")
{
MouseClick, left, , ,2
}
if(action = "RightClick")
{
MouseClick, right
}
MouseMove %xpos%, %ypos%
}
只需按Rctrl+數字即可啟動;單擊或右鍵單擊您需要的系統托盤圖示。
例如,我將輸入並點擊操作放在前兩個圖示上(在我的系統上它們是 uTorrent 和 Altdrag)。數字表示出現順序。
答案2
如果您正在尋找內建的東西,答案是否定的。除非您算老式的「將焦點切換到工作欄,將選項卡切換到系統托盤,將箭頭指向所需的圖示等」方法。您可以使用 WinKey+B 來縮短此過程,但您仍然需要先按下箭頭,然後以困難的方式進行互動。
答案3
您可以使用一個免費的應用程序,名為工作列隨機播放。
您可以根據需要對工作列中開啟的視窗重新排序。我很確定這個應用程式也允許您重新排序系統托盤圖示。我不確定它是否支援熱鍵,儘管它可能...
答案4
這裡有一個答案自動它,由我改編: 滑鼠點選 Windows 系統匣中的項目
- 之前,我非常感謝 @MJSR 在 2011 年 3 月 8 日 20:27:16 的回复
; #NoTrayIcon
#Include <GuiToolBar.au3>
#include <MsgBoxConstants.au3>
HotKeySet("!d", "_UI") ; Alt-d
While 1
Sleep(100)
WEnd
Func _UI()
; MsgBox($MB_SYSTEMMODAL, "", "This is a message.")
; _SysTray_ClickItem("Executor", "right", 1)
_SysTray_ClickItem("Displaying used physical", "right", 1)
If @error Then MsgBox(48, "Failure", "Required item not found")
EndFunc ;==>ShowMessage
;=========# _SysTray_ClickItem #======================================================
;
;Function Name: _SysTray_ClickItem()
;Description: Click on item in Windows system tray by any substring in the title
;Parameters: $iTitle - The title of the item in Windows system tray (you can see the title of the item when mouse cursor hovered on item).
; $iButton - [optional] The button to click, "left" or "right". Default is the left button.
; $iClick - [optional] The number of times to click the mouse. Default is 1
; $sMove = [optional] True = Mouse will be moved, False (default) = Mouse will not be moved
; $iSpeed = [optional] Mouse movement speed
;Return Value(s): Success - Returns 1
; Failure - Returns 0 and sets @error to 1 if required item not found
;Requirement(s): AutoIt 3.2.10.0 and above
;Autor(s): R.Gilman (a.k.a rasim); Siao (Thanks for idea)
;
;====================================================================================
Func _SysTray_ClickItem($iTitle, $iButton = "left", $iClick = 1, $sMove = False, $iSpeed = 1)
Local $hToolbar, $iButCount, $aRect, $hButton, $cID, $i
$hToolbar = ControlGetHandle("[Class:Shell_TrayWnd]", "", "[Class:ToolbarWindow32;Instance:1]")
If @error Then
Return SetError(1, 0, 0)
EndIf
$iButCount = _GUICtrlToolbar_ButtonCount($hToolbar)
If $iButCount = 0 Then
Return SetError(1, 0, 0)
EndIf
$hButton = ControlGetHandle("[Class:Shell_TrayWnd]", "", "Button2")
If $hButton <> "" Then ControlClick("[Class:Shell_TrayWnd]", "", "Button2")
For $i = 0 To $iButCount - 1
$cID = _GUICtrlToolbar_IndexToCommand($hToolBar, $i)
If StringInStr(_GUICtrlToolbar_GetButtonText($hToolBar, $cID), $iTitle) Then
_GUICtrlToolbar_ClickButton($hToolbar, $cID, $iButton, $sMove, $iClick, $iSpeed)
Return 1
EndIf
Next
Return SetError(1, 0, 0)
- 注意:「顯示已使用實體」= MemInfo.exe