Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] WinMenuSelectItem - прошу помощи (http://forum.oszone.net/showthread.php?t=160232)

Freez 14-12-2009 16:21 1295056

WinMenuSelectItem - прошу помощи
 
упорно отказывается работать..
простенький кусок скрипта к примеру:

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 1295071

Цитата:

Цитата Freez
Функция возвращает 0, т.е. нажатия не происходит. »

А куда оно должно нажать? :)

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

Код:

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

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

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

Код:

Run("C:\Program Files\7-Zip\7zFM.exe")
WinWaitActive("7-Zip File Manager", "", 5)

ControlSend("7-Zip File Manager", "", "", "{ALT}{DOWN}")


kaster 14-12-2009 16:45 1295080

Код:

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 1295134

Прошу прощения, не знал про теги )

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

kaster 14-12-2009 18:55 1295181

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

Freez 14-12-2009 18:59 1295189

kaster, действительно помогло
Всем спасибо )

Creat0R 14-12-2009 21:28 1295307

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

Код:

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

Run(@ProgramFilesDir & "\7-Zip\7zFM.exe")
WinWaitActive("[CLASS:FM;TITLE:7-Zip File Manager]", "", 5)

$h7zip = WinGetHandle("[CLASS:FM;TITLE:7-Zip File Manager]")
WinActivate($h7zip)

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



Время: 01:03.

Время: 01:03.
© OSzone.net 2001-