Я пишу скрипт в autohotkey. Цель скрипта - изменить действие, выполняемое программой, которую кто-то нажимает на панель задач. Например, если кто-то говорит о тройных кликах IE на панели задач, он открывается в приватном режиме. У меня есть код ниже, моя проблема заключается в том, что я пытаюсь найти способ автоматического определения местоположения значков панели задач на панели задач, чтобы программа могла установить ее границы для каждого щелчка. Я пробовал искать в реестре, и я также попытался извлечь иконки из программ и искать их на экране с помощью imagesearch, но он не может найти иконки .... В любом случае я могу это сделать?Найти Cordinates из закрепленной панели задач Shorcuts?
КОД
#NoEnv ; Recommended for performance and compatibility with future
AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#SingleInstance Force
CoordMode, Mouse, Screen
Time = 500
~Lbutton::
;if there is a double left click
If (A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < Time)
{
Count ++
}
Else
{
Count = 1
}
SetTimer, Handler, %Time%
return
Handler:
SetTimer, Handler, Off
IfEqual, Count, 2
{
If (Mouse_y > 1040)
{
If (Mouse_x > 50) and (Mouse_x < 98) ;over my explorer icon
{
Run, "%A_AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Internet Explorer.lnk"
}
If (Mouse_x > 99) and (Mouse_x < 147) ; over powershell ise
{
Run, explorer.exe
}
If (Mouse_x > 148) and (Mouse_x < 196) ; over chrome
{
Run, "%A_AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\outlook 2013.lnk"
}
If (Mouse_x > 197) and (Mouse_x < 245) ; over ie
{
Run, "%A_AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Active Directory Users and Computers.lnk"
}
If (Mouse_x > 246) and (Mouse_x < 294) ; over vs 2015
{
Run, "%A_AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\DHCP.lnk"
}
If (Mouse_x > 295) and (Mouse_x < 343) ; over pusbullet
{
Run, "%A_AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\DNS.lnk"
}
}
}
IfEqual, Count, 3
{
If (Mouse_y > 1040)
{
If (Mouse_x > 50) and (Mouse_x < 98) ;over my explorer icon
{
Run, "%A_AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Internet Explorer.lnk" -private
}
If (Mouse_x > 99) and (Mouse_x < 147) ; over powershell ise
{
Run, explorer.exe
}
If (Mouse_x > 148) and (Mouse_x < 196) ; over chrome
{
Run, "%A_AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\outlook 2013.lnk"
}
If (Mouse_x > 197) and (Mouse_x < 245) ; over ie
{
Run, "%A_AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Active Directory Users and Computers.lnk"
}
If (Mouse_x > 246) and (Mouse_x < 294) ; over vs 2015
{
Run, "%A_AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\DHCP.lnk"
}
If (Mouse_x > 295) and (Mouse_x < 343) ; over pusbullet
{
Run, "%A_AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\DNS.lnk"
}
}
}
см Http: //stackoverflow.com/questions/31375455/detect-which-taskbar-button-was-clicked-identify-target-window – Blauhirn