Шпионаж за окном, которое, похоже, не отправляет сообщения [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Шпионаж за окном, которое, похоже, не отправляет сообщения [закрыто]

Сообщение Anonymous »

Я использую autohotkey для автоматизации определенных задач, когда рисую с помощью Clip Studio Paint (японское программное обеспечение)
Я пытаюсь проверить, правильно ли ведет себя программное обеспечение, когда я нажимаю ярлык для смены инструмента (например, ластик) иногда краска студии 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»