Что нового

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

lapin9126

Новичок
Сообщения
36
Репутация
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 Гуру
Сообщения
1,010
Репутация
408
С помощью этого смотришь что происходит при нажатии нужных кнопок, затем с помощью _SendMessage ты увиденное отсылаешь окну.
 
Автор
L

lapin9126

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

sngr

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

lapin9126

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

sngr

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

lapin9126

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

InnI

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

lapin9126

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

sngr

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

lapin9126

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

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

sngr

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

lapin9126

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

InnI

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

InnI

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

lapin9126

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

InnI

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