1 (изменено: stealzy, 2014-04-23 13:40:40)

Тема: AHK: Решено. [SendMessage] vs [PostMessage]

(Программа 2ГИС http://info.2gis.ru/)
Вызываю окно настроек и в нем ставлю чекбокс.
Первое делается с помощью SendMessage, второе — Control,Check(SendMessage не берет).
Так вот, если внутри скрипта я использую SendMessage, то использовать Control,Check уже не выходит!
Я ставил 10-сек. Sleep-ы, разносил команды на разные хоткеи.
Но если разнести их по разным скриптам, все ок!

SetTitleMatchMode, RegEx
WinWaitActive, ^[^(]+\(\S+ 201\d\) - 2ГИС$ ;ahk_class ^Afx:\d{8}:\S+
SetTitleMatchMode, 1
gisID := WinExist("") ; главное окно программы
Return

F8::
SendMessage, 0x111, 32808, 0,, ahk_id %gisID% ; вызов окна настроек
Return
F7::
WinWaitActive, AHK_class #32770 ; ожидание окна настроек
Control,Check,,Button12,AHK_class #32770 ; Чекбокс
ControlClick,Button14,AHK_class #32770 ; кнопка ОК. тоже не жмется
Return

---------------------------------------------------------
UPD. Там где возможно лучше использовать Post-метод, иначе(Send) скрипт ждет ответа, которого может и не быть.

2

Re: AHK: Решено. [SendMessage] vs [PostMessage]

Удивили
Создали 2 темы про какие то конкретные окна, но что за окна остаётся в тайне. Видимо это загадка такая?

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

3 (изменено: stealzy, 2014-04-23 12:05:52)

Re: AHK: Решено. [SendMessage] vs [PostMessage]

Там окно открытия - стандартное; в этой теме в Title окна видно ее название.
Указал подробнее, раз такое дело.

4 (изменено: serzh82saratov, 2014-04-23 12:50:49)

Re: AHK: Решено. [SendMessage] vs [PostMessage]

раз такое дело.

А какое оно по вашему?
Всё работает хорошо, просто SendMessage не получает ответа.


SetTitleMatchMode, RegEx  

F8::
    PostMessage, 0x111, 32808, 0,, ahk_exe grym.exe ahk_class Afx.* 
    WinWait, Общие настройки ahk_class #32770 ahk_exe grym.exe  
    Control,Check, ,Button12   
    Control,Check, ,Button14 
    Return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5 (изменено: stealzy, 2014-04-23 13:08:16)

Re: AHK: Решено. [SendMessage] vs [PostMessage]

А слона, то я и не приметил...

Сколько раз уже натыкался на разницу методов, и не вспомнил.
Скрипт попозже выложу.
Спасибо!

+ offtop

Вы использовали телепатию, или действительно установили прогу?:o

6

Re: AHK: Решено. [SendMessage] vs [PostMessage]

Как сообщить окну ПКМ посредством Sendmessage/PostMessage?

Пока печатал, мысль дошла. Оставлю её здесь, может кому пригодится, а может и здраво покритикуют ->


#x::
	MouseGetPos, my_x, my_y, varWin, cntrol, 2
	
	WinGetPos, hw_x, hw_y, hw_w, hw_h, ahk_id %cntrol%
	WinGetPos, hwWin_x, hwWin_y, hwWin_w, hwWin_h, ahk_id %varWin%
	
	shift_x :=  hw_x - hwWin_x
	shift_y := hw_y - hwWin_y
	
	l_param := % ((my_x - shift_x) + ((my_y - shift_y) * 65536))
	PostMessage, 0x0204, 0x0002, %l_param%, , ahk_id %cntrol%
	sleep 50
	PostMessage, 0x0205, 0x0000, %l_param%, , ahk_id %cntrol%
return

7

Re: AHK: Решено. [SendMessage] vs [PostMessage]

В порядке критики.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Решено. [SendMessage] vs [PostMessage]

teadrinker
Простите, если ответ на не заданный вопрос мог показаться менее предметным чем сам вероятный вопрос, но я не нашёл что искал, а решение пришло из ассоциации в прошлом опыте(переношу старые скрипты на AHK). Стараюсь сам пользоваться поиском, чтобы меньше отвлекать умудрённых мужей своими трудностями, вот и решил оставить тем, кто тоже ищет. И развивая тему, не подскажите ли, как узнать HWND контрола окна имея лишь его координаты и не перемещая в них курсор?

9

Re: AHK: Решено. [SendMessage] vs [PostMessage]

Да вы по ссылке-то ходили ли?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10

Re: AHK: Решено. [SendMessage] vs [PostMessage]

teadrinker
"3.11. Руководствуйтесь правилом: один вопрос - одна тема, не загромождайте..."
Конечно. Чтобы получить ответ, нужно создавать отдельную тему со своим вопросом, верно? Не читал правила до сего момента, надеясь на собственную порядочность, каковую впитал на своей местности. Всегда думалось, что в теме должна быть предельная концентрация знаний, отражающих суть названия темы. Так искать информацию легче. Так мне всегда казалось. Увы, был не прав, каюсь.

Нашёл решение через:


WinGet, ListControl, ControlListHwnd, WinTitle