Что нового

[Автоматизация] Остановка выполнения сценария после ф-ции _SendMessage

glorycpsu

Новичок
Сообщения
7
Репутация
0
Суть: Как уйти от останова в сценарии или как активизировать дальнейшее выполнение сценария?
Использую нажатие кнопки на ToolBar через:

Код:
$hToolBar = ControlGetHandle("Менеджер счетов", "", "[CLASS:ToolbarWindow32; INSTANCE:1]")
$iCommand = _GUICtrlToolbar_IndexToCommand($hToolBar, 10)
_SendMessage($hToolBar, $WM_COMMAND, $iCommand, 0)
Sleep(1000)


Выводится ожидаемое в окне "Export". После этого происходит останвка выполнения сценария.
Вот следующие строки сценария.

Код:
ControlFocus ("Export","", "[CLASSNN:Button1]")
ControlSend("Export", "", "", "{TAB}")
ControlSend("Export", "", "", "{TAB}")
ControlSend("Export", "", "", "Rich Text Format")
Sleep(1000)
ControlSend("Export", "", "[CLASSNN:Button1]", "{ENTER}")

Если нажму физически на кнопку "Cancel" в окне "Export", сценарий продолжает работать. Идет завершение работы приложения по сценарию. А мне нужно именно проделать операции в окне "Export", которые описаны выше. Я так понимаю, что сценарий зависает после выполнения команды :

Код:
_SendMessage($hToolBar, $WM_COMMAND, $iCommand, 0)
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Re: [Автоматизация] Остановка выполнения сценария

очень интересно. а в чем вопрос заключается?
и еще,
{CodeWarn}
 
Автор
G

glorycpsu

Новичок
Сообщения
7
Репутация
0
Re: [Автоматизация] Остановка выполнения сценария

Исправил согласно правилам. Изменил и саму суть вопроса. Возможно я не могу правильно поставить вопрос?
 
Автор
G

glorycpsu

Новичок
Сообщения
7
Репутация
0
Вышел из ситуации.
Через строку в скрипте ,
Код:
Opt("TrayIconDebug",1)

нашел что ошибка в передаваемых параметрах для функции __SendMessage() из библиотеки <SendMessage.au3>
В чем ошибка не смог разобраться. Но так как я знаю порядковый индекс нажимаемой кнопки использовал следующую команду
Код:
_GUICtrlToolbar_ClickIndex($hToolBar, 10)

Сценарий исполняется без проблем.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 714
Просто используй _WinAPI_PostMessage() вместо _SendMessage().
 
Автор
G

glorycpsu

Новичок
Сообщения
7
Репутация
0
Спасибо. Попробую изменить код по Вашей подсказке.
 
Верх