PDA

Показать полную графическую версию : [решено] WinMenuSelectItem - прошу помощи


Freez
14-12-2009, 16:21
упорно отказывается работать..
простенький кусок скрипта к примеру:

Run ("C:\Program Files\7-Zip\7zFM.exe")
WinWaitActive ("7-Zip File Manager", "", 1000)
$i=WinMenuSelectItem ("7-Zip File Manager", "", "Файл")
msgbox (64, "11", $i)

Функция возвращает 0, т.е. нажатия не происходит. С чем это может быть связано?

Creat0R
14-12-2009, 16:37
Функция возвращает 0, т.е. нажатия не происходит. »
А куда оно должно нажать? :)

Вот так работает:

Run (http://www.autoitscript.com/autoit3/docs/functions/Run.htm)("C:\Program Files\7-Zip\7zFM.exe")
WinWaitActive (http://www.autoitscript.com/autoit3/docs/functions/WinWaitActive.htm)("7-Zip File Manager", "", 5)
$i = WinMenuSelectItem (http://www.autoitscript.com/autoit3/docs/functions/WinMenuSelectItem.htm)("7-Zip File Manager", "", "&Справка", "О &программе...")
ConsoleWrite (http://www.autoitscript.com/autoit3/docs/functions/ConsoleWrite.htm)($i)

P.S
И куски кода нужно заключать в соответствующий тег.

Если нужно просто раскрыть меню Файл, то можно и так:

Run (http://www.autoitscript.com/autoit3/docs/functions/Run.htm)("C:\Program Files\7-Zip\7zFM.exe")
WinWaitActive (http://www.autoitscript.com/autoit3/docs/functions/WinWaitActive.htm)("7-Zip File Manager", "", 5)

ControlSend (http://www.autoitscript.com/autoit3/docs/functions/ControlSend.htm)("7-Zip File Manager", "", "", "{ALT}{DOWN}")

kaster
14-12-2009, 16:45
Run ("C:\Program Files\7-Zip\7zFM.exe")
Sleep(1000)
;WinWaitActive ("7-Zip File Manager", "", 1000)
$i=WinMenuSelectItem ("[CLASS:FM]", "", "&Файл", '&Создать Папку')
msgbox (64, "11", $i)

Меню должно быть таким, что после нажатия на оно исчезает. А Файл - не относится к такому виду. Поэтому надо выбрать дальше, пока не дойдешь до последнего субменю.

Freez
14-12-2009, 17:55
Прошу прощения, не знал про теги )

Спасибо за помощь, меня теперь интересует только один аспект.
Как узнать, куда амперсенд втыкать в название пункта?
У меня буквы почему-то не подчеркивает, ВинИнфо на пункты меню не реагирует.. Я в замешательстве )

kaster
14-12-2009, 18:55
Freez, нажми Alt. а потом стрелками верх-вниз, право-влево проваливаясь в нужные субменю. все подчеркивания должны быть видны

Freez
14-12-2009, 18:59
kaster, действительно помогло
Всем спасибо )

Creat0R
14-12-2009, 21:28
А ещё можно Resource Hacker'ом (как один из примеров) посмотреть значения всех пунктов меню, плюс узнать их ID (идентификаторы), тогда нажимать на меню можно будет так:

#include <WindowsConstants.au3>
#include <SendMessage.au3>
;

Run (http://www.autoitscript.com/autoit3/docs/functions/Run.htm)(@ProgramFilesDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@ProgramFilesDir) & "\7-Zip\7zFM.exe")
WinWaitActive (http://www.autoitscript.com/autoit3/docs/functions/WinWaitActive.htm)("[CLASS:FM;TITLE:7-Zip File Manager]", "", 5)

$h7zip = WinGetHandle (http://www.autoitscript.com/autoit3/docs/functions/WinGetHandle.htm)("[CLASS:FM;TITLE:7-Zip File Manager]")
WinActivate (http://www.autoitscript.com/autoit3/docs/functions/WinActivate.htm)($h7zip)

_SendMessage($h7zip, $WM_COMMAND, 620, 0) ;Пункт "О программе..."




© OSzone.net 2001-2012