Я пытаюсь проверить, правильно ли ведет себя программное обеспечение, когда я нажимаю ярлык для смены инструмента (например, ластик) иногда краска студии Clip ничего не делает, мне приходится нажимать ALT-TAB и обратно, чтобы ярлык снова заработал
Я писал о проблеме в службу поддержки, но они, похоже, ничего не делают это.
Мой обходной путь — использовать autohotkey для альтернативной вкладки и обратно, а затем отправить ярлык
но я не могу знать, реагирует ли окно на горячие клавиши или нет.
У меня нет элементов управления, которые появляются при изменении инструмент или что-то совместимое с Autohotkey. Кажется, оно не разработано со стандартными элементами управления Windows (как показано на этом снимке экрана:
Я пытался шпионить за окном, чтобы узнать, отправляет ли оно сообщения, ничего
Мне интересно, есть ли другие способы проверить окно и получить некоторую информацию
Я попробовал этот код
Код: Выделить всё
targetWindowTitle := "Clip Studio Paint"
; Set up the hook
hHook := DllCall("SetWindowsHookEx", "int", 5, "uint", RegisterCallback("HookProc"), "uint", 0, "uint", DllCall("GetCurrentThreadId"))
; Find the target window
hwnd := WinExist(targetWindowTitle)
msgFilter := ComObjCreate("System.Collections.ArrayList")
msgFilter.Add(0x100) ; WM_KEYDOWN
msgFilter.Add(0x101) ; WM_KEYUP
msgFilter.Add(0x0201) ; WM_LBUTTONDOWN
msgFilter.Add(0x0202) ; WM_RBUTTONDOWN
; Set a timer to regularly check and print out captured messages
SetTimer, CheckMessages, 100
Return
HookProc(nCode, wParam, lParam) {
criticalObject := DllCall("CreateMutex", "int", 0, "int", 0, "str", "MyHookMutex")
if (nCode >= 0) {
; Basic message filtering. You'd need to expand this significantly to capture more messages.
if msgFilter.Contains(wParam) {
DllCall("OutputDebugString", "str", "Message: " wParam " for window handle: " hwnd)
}
}
return DllCall("CallNextHookEx", "uint", hHook, "int", nCode, "uint", wParam, "uint", lParam)
}
CheckMessages:
Notify(A_ScriptName,A_ThisLabel " = " HookProc(),3,"Gt=off SI=100 AX=2 BC=c2d2b0 GC=041e49 TC=26b3f3 MC=a6c0c5 GR=10 Ac=Open_in_AhkEditor","") ; GC = Background Color | TC = Title Color | MC = Text Color
Return
Очевидно, мне нужно шпионить за этим не только для этой проблемы с Alt Tab, но это пример
В этот момент я думаю сделать скриншот вещи и поискать по изображению изменения. Но это займет много времени
Есть ли продвинутый способ шпионить за этим окном
Подробнее здесь: https://stackoverflow.com/questions/793 ... d-messages
Мобильная версия