Что нового

Автоматизация Управление пунктами меню в главном окне программы

lapin9126

Новичок
Сообщения
29
Репутация
1
Здравствуйте, помогите новичку. Есть ли возможность с помощью Autoit управлять меню, в главном окне программы (File, Video, Edit и т. д.) не MouseClick?
Попытки WinMenuSelectItem не увенчались успехом.
Код:
$hWnd = WinActivate("Alpha Pro")
WinMenuSelectItem($hWnd, '', 'Video', 'Render')

альфа-2.png
###AutoIt Control Viewer Report File###

Environment
===========
System: Microsoft Windows 7 Профессиональная 32-bit
Aero: Disabled

Window
======
Title: Alpha Pro - [360_PROGRAMMA_13_00.SC]
Class: Afx:012C0000:8:00010003:00000000:73D103B7
Style: 0x15CF8000
ExStyle: 0x00000110
Position: -4, -4
Size: 1608, 864
Handle: 0x004407B8
PID: 7212
Path: C:\alphapro\alphapro.exe

Control
=======
Class:
Instance:
ID:
Style:
ExStyle:
Position:
Size:
Handle:
Text:
 

sngr

AutoIT Гуру
Сообщения
990
Репутация
396
С помощью этого смотришь что происходит при нажатии нужных кнопок, затем с помощью _SendMessage ты увиденное отсылаешь окну.
 
Автор
L

lapin9126

Новичок
Сообщения
29
Репутация
1
С помощью этого смотришь что происходит при нажатии нужных кнопок, затем с помощью _SendMessage ты увиденное отсылаешь окну.
Из полезного извлекаются координаты передвижения курсора и клавиш мышки
 

sngr

AutoIT Гуру
Сообщения
990
Репутация
396
Это самое бесполезное. Посмотри есть ли wm_command.
 
Автор
L

lapin9126

Новичок
Сообщения
29
Репутация
1
Отсортировал по wm_command
screenshot5.png
 

sngr

AutoIT Гуру
Сообщения
990
Репутация
396
Код:
#include "SendMessage.au3"
$hWnd = WinActivate("Alpha Pro")
_SendMessage($hWnd,0x0111, 8019)
и посмотри по hWnd в главное окно посылается команда или другое.
 
Автор
L

lapin9126

Новичок
Сообщения
29
Репутация
1
Код:
#include "SendMessage.au3"
$hWnd = WinActivate("Alpha Pro")
_SendMessage($hWnd,0x0111, 8019)
и посмотри по hWnd в главное окно посылается команда или другое.
При выполнении данного скрипта активируется Alpha Pro и ни чего не происходит.
 

InnI

AutoIT Гуру
Сообщения
4,724
Репутация
1,355
А так?
Код:
_SendMessage($hWnd, 0x0111, 0x8019)
 
Автор
L

lapin9126

Новичок
Сообщения
29
Репутация
1
А так?
Код:
_SendMessage($hWnd, 0x0111, 0x8019)
Да я заметил что не хватает пробела, исправил, и попробовал с вариантом 0x8019, но всё-равно только активируется окно программы
 
Последнее редактирование:

sngr

AutoIT Гуру
Сообщения
990
Репутация
396
Код:
$hwnd=WinWait("Alpha Pro")
ConsoleWrite( $hwnd& @LF)
посмотри в какое окно идёт команда, у программы может быть скрытые окна.
 
Автор
L

lapin9126

Новичок
Сообщения
29
Репутация
1
Код:
$hwnd=WinWait("Alpha Pro")
ConsoleWrite( $hwnd& @LF)
посмотри в какое окно идёт команда, у программы может быть скрытые окна.
0x004407B8
Сообщение автоматически объединено:

Да ладно, я не думал что это так всё очень сложно, просто в примере с блокнотом как-то не очень заморочено. Прошу понять и простить.
 

sngr

AutoIT Гуру
Сообщения
990
Репутация
396
Сложно, сложно, непонятно. Можешь черз send клавиши в меню посылать, нажимаешь alt и смотришь в меню на кнопки.
 
Автор
L

lapin9126

Новичок
Сообщения
29
Репутация
1
Сложно, сложно, непонятно. Можешь через send клавиши в меню посылать, нажимаешь alt и смотришь в меню на кнопки.
На данный пункт меню нет горячей клавиши. На скриншоте видны хоткеи. Да через send было бы попроще.
 

InnI

AutoIT Гуру
Сообщения
4,724
Репутация
1,355
При активном окне нажмите и отпустите Alt - активируется меню. Клавишами курсора раскройте Video. У пунктов Video и Render есть подчёркнутые буквы?
 

InnI

AutoIT Гуру
Сообщения
4,724
Репутация
1,355
Пробуйте
Код:
WinMenuSelectItem('Alpha Pro', '', 'Vide&o', '&Render')
 
Автор
L

lapin9126

Новичок
Сообщения
29
Репутация
1
Пробуйте
Код:
WinMenuSelectItem('Alpha Pro', '', 'Vide&o', '&Render')
Да работает, спасибо, только сразу не поймешь нет видимого действия макроса. Правильно я понял вставлять "&" нужно в местах названия меню на месте черточек?
 

InnI

AutoIT Гуру
Сообщения
4,724
Репутация
1,355
Да, правильно. Перед подчёркнутой буквой нужно добавить &.
 
Верх