1

Тема: AHK: как найти код сообщения для PostMessage

Приветствую, Уважаемые!

Прочитав статью http://www.script-coding.com/AutoHotkey … ation.html , в своей ситуации (дилерская программа) не смог найти в окне для контрола код сообщения в Winspector для PostMessage. Про web-интерфейс тоже почитал, но тут табуляция не работает, хоть текст и выделяется как при наведении на ссылку и меняется курсор мыши.

Я сделал с помощью AutoScriptWriter, но этот вариант зависит от разрешения экрана (может и ещё от чего) - мне не очень нравится.

Вопрос: как ещё можно решить эту ситуацию - т.е. или примеры или команды, про которые почитать.

2

Re: AHK: как найти код сообщения для PostMessage

Что понимается под "решить эту ситуацию"? Что за окно дилерской программы с контролами?

3 (изменено: pm01ssv, 2014-12-29 18:32:57)

Re: AHK: как найти код сообщения для PostMessage

Да, очевидно, я выразился непонятно, прошу прощения.
Скриншот трёх окон DRIM (Сама программа, в которой и нужно с помощью скрипта запустить "экран клиента")
AutoIt3 Window Spy (мышь наведена на "ссылку" "на экран клиента")
Winspector Spy (открыто окно с сообщениями - как писалось в примере статья в FAQ выше).
Ссылка на скрин http://2.firepic.org/2/images/2014-12/2 … fi4ypa.jpg

Я пытаюсь скриптом запустить "Планировщик сервиса (экран клиента)". Но я не вижу ничего в этих программах такого, что описывалось в статье, которую упомянул в первом посте и в похожей про вёб-интерфейс http://www.script-coding.com/AutoHotkey … faces.html , т.к. табуляция не работает в этом приложении.

Хочу запустить не мышкой - так надёжнее. Как это сделать.

4

Re: AHK: как найти код сообщения для PostMessage

Может быть эта программа и без web-интерфейса. Если нужно просто сделать щелчок ЛКМ по пункту меню, достаточно воспользоваться командой ControlClick. Она позволяет послать нажатие ЛКМ относительно верхнего левого угла окна.

5 (изменено: stealzy, 2014-12-29 20:51:29)

Re: AHK: как найти код сообщения для PostMessage

В Winspectore щелкните ПКМ по контролу в дереве - Hightlight.
Если подсветиться только ваша ссылка - вам повезло, записываете информацию о контроле, и ControlClick.
Но скорее подсветиться большой участок с несколькими пунктами.
Тогда определятете координаты вашего пункта относительно окна (с помощью mousemove) и Click. Но, судя по скрину, там будут другие пункты, если раскрыта другая вкладка, напримет, TEMP. Тут нужно на месте смотреть.

6

Re: AHK: как найти код сообщения для PostMessage

Судя по названию контрола, у него есть интерфейс accesible.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7 (изменено: pm01ssv, 2014-12-30 14:33:59)

Re: AHK: как найти код сообщения для PostMessage

Для stealzy:
Да подсвечивается прямоугольник с несколькими ссылками. (сделал скрин при наведении мишени)
http://2.firepic.org/2/images/2014-12/30/s4vg6uw3iaor.jpg

Для serzh82saratov:
"accessible" - это что и где почитать про это?


Но, судя по скрину, там будут другие пункты, если раскрыта другая вкладка, напримет, TEMP

Это решаемо - можно ткнуть сначала на пункт "CRM".
Добавлено: нет, так не очень удобно, т.к. они все в одном общем прямоугольнике, а высчитывать всё от нижнего края (т.к. привязаны к нижнему краю) неудобно.
Сделаю проще, будут закрывать всю программу, т.к. всё равно это нужно делать (обновления проверяются при запуске).
А при открытии открывается именно CRM

8 (изменено: pm01ssv, 2014-12-30 14:20:48)

Re: AHK: как найти код сообщения для PostMessage

сделал так:

V_drim_window_name := "DRIM (Dealer Retail Interactive Manager)"
V_drim_control := "WindowsForms10.Window.8.app.0.378734a6"
WinActivate, %V_drim_window_name%
IfWinActive, %V_drim_window_name%
{
    SetControlDelay -1
    ControlClick, %V_drim_control%, %V_drim_window_name%,,,, NA x100 y100  
} 

а вот с MouseClick в зависимости от верхнего угла окна не получилось. Мышь по разному позиционируется в зависимости от того развернуто окно на весь экран или нет. Ощущение, что если окно не на весь экран, то используются не пиксели а десятки пикселей (возможно связано с тем, что в системе установлено увеличение шрифтов)

Спасибо, за помощь

9

Re: AHK: как найти код сообщения для PostMessage

"SetControlDelay -1" по уму следовал бы вынести в верхнюю часть скрипта, чтобы не задавать длину паузы каждый раз.

pm01ssv пишет:

а вот с MouseClick в зависимости от верхнего угла окна не получилось. Мышь по разному позиционируется в зависимости от того развернуто окно на весь экран или нет. Ощущение, что ...

Есть команда CoordMode. Если интересно, поищите по форуму перевод. Тема называется "AutoHotkey проект перевода" или как-то так.

10

Re: AHK: как найти код сообщения для PostMessage

Для serzh82saratov:
"accessible" - это что и где почитать про это?

Прежде чем читать, проще AhkSpy посмотреть что там с координатами, с именем. Но если имя контрола постоянно, то можно через ControlGetPos получать координаты.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui