AFAIK, a única maneira de mover ícones na barra de tarefas, é arrastá-los, portanto, esse é um script AHK que faz o procedimento por meio de programação:
^F1::
toggle = true
Window = 0
while (toggle) {
OldWindow = %Window%
WinGet Window, List
if (Window > OldWindow) {
SetTitleMatchMode, RegEx
IfWinExist, Notepad$
{
WinActivate
} Else {
; MsgBox Cannot find Notepad window.
Continue
}
; absolute coordinate
CoordMode Pixel, Screen
CoordMode Mouse, Screen
Sleep, 100 ; wait for the Notepad icon to be fully highlighted, because Windows have animation of lighting icon
ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *5 *TransWhite D:\np.bmp
; allow some variation because Windows have anti-aliasing etc.
; ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *10 *Icon1 %A_WinDir%\system32\notepad.exe
; because of some reason the above command does not work
if ErrorLevel = 2
MsgBox Could not conduct the search.
else if ErrorLevel = 1
MsgBox Icon could not be found on the screen.
else {
MouseGetPos OldX, OldY
SetDefaultMouseSpeed, 0
MouseMove, %FoundX%, %FoundY%
Click down left
MouseMove, A_ScreenWidth, %FoundY% ; move the mouse all the way to the right
Click up left
MouseMove, %OldX%, %OldY% ; move mouse to old position
}
}
Sleep, 500 ; can be omitted
}
Return
^F2::
toggle = false
Return
Notas:
- Por algum motivo, não consigo usar
*Icon1 %A_WinDir%\system32\notepad.exe
ou similar, você precisa fornecer um arquivoD:\np.bmp
consiste no ícone da bandeja do Bloco de notas quando o Bloco de notas está em foco. - Pressione
^F1
para ativar,^F2
para desativar. - A parte usada para arrastar o ícone da tarefa Bloco de notas é executada sempre que o número de janelas relatadas por
WinGet
aumenta, ou seja, quando você abre uma nova janela. - A janela do bloco de notas está em foco toda vez que é arrastada para a direita.
- Eu não sei como executar o comando toda vez, exceto usando um loop infinito (
while (toogle)
). Isso pode consumir CPU.