
Microsoft Photos не позволяет перемещаться по фотографиям, если вы приблизили одну из них, только когда вы находитесь на уровне масштабирования по умолчанию. Это немного сбивает с толку, поэтому я решил создать направление Autohotkey, чтобы сгладить эту проблему.
Поскольку колесо прокрутки всегда перемещается по элементам в Microsoft Photos (независимо от причины), моя логика была в том, чтобы всегда запускать прокрутку колесом мыши при нажатии клавиши навигации (стрелки). Теоретически это работает отлично, однако в реальности это не работает.
Кто-нибудь знает почему? Неправильное направление Autohotkey или что-то еще?
#IfWinActive, ahk_exe Microsoft.Photos.exe
Left::Send {WheelUp}
Right::Send {WheelDown}
#If
решение1
Попробуй это:
#If (WinGetActiveProcessName() = "Microsoft.Photos.exe")
Left::Send {WheelUp}
Right::Send {WheelDown}
#If
WinGetActiveProcessName(){
; https://www.autohotkey.com/boards/viewtopic.php?t=13818&p=70912#p73137
WinGet name, ProcessName, A
if (name = "ApplicationFrameHost.exe")
{
ControlGet hwnd, Hwnd,, Windows.UI.Core.CoreWindow1, A
if hwnd
{
WinGet name, ProcessName, ahk_id %hwnd%
}
}
return name
}
решение2
«Фотографии» — странное приложение, вызывающее другой исполняемый файл, который не является очевидным.
Это было проверено и будет работать:
#IfWinActive, ahk_exe ApplicationFrameHost.exe
Left::Send {WheelUp}
Right::Send {WheelDown}
Application Frame Host — это служба Windows, предназначенная для отображения определенных приложений в кадрах. Обратите внимание, что изменение того, как работает этот исполняемый файл, может повлиять на другие приложения Windows.
Другая возможность — использовать заголовок, содержащий строку «Фотографии», а не исполняемый файл:
SetTitleMatchMode, 2
#IfWinActive, Photos
Left::Send {WheelUp}
Right::Send {WheelDown}