Jump to content

Recommended Posts

Posted

Hi All,

I want to fetch the run time menu item text.

1. I have to right click on a list view item.

2. A pop-up menu with 4 items appears and I have to fetch the text of the menu.

Is there any way to perform step 2 using autoit.

Any help will be appreciated.

Thanks in advance.

  • Moderators
Posted

Automationuser,

Run this code and use the "^r" HotKey once the pop-up menu is visible.

#include <Array.au3>
#include <WinAPI.au3>
#include <GUIMenu.au3>
#include <WindowsConstants.au3>

HotKeySet("^r", "_Read")

HotKeySet("{ESC}", "On_Exit")

While 1
    Sleep(10)
WEnd


Func On_Exit()
    Exit
EndFunc

Func _Read()

    ; Run this once the popup menu has appeared
    $aPopUp_Text = GetPopUpText()
    If $aPopUp_Text[0] = 0 Then
        MsgBox(16, "Error", "Non-standard Pop-up Menu")
    Else
        _ArrayDisplay($aPopUp_Text)
    EndIf

EndFunc

Func GetPopUpText()

    Local $aPopUp_List = _WinAPI_EnumWindowsPopup()
    Local $hWnd = $aPopUp_List[1][0]
    Local $sClass = $aPopUp_List[1][1]
    If $sClass = "#32768" Then
        $hMenu = _SendMessage($hWnd, $MN_GETHMENU, 0, 0)
        If _GUICtrlMenu_IsMenu($hMenu) Then
            $iCount = _GUICtrlMenu_GetItemCount($hMenu)
            Local $aPopUp_Text[1] = [0]
            For $j = 0 To $iCount - 1
                If Not _GUICtrlMenu_GetItemType($hMenu, $j, True) = $MFT_SEPARATOR Then
                    $aPopUp_Text[0] += 1
                    ReDim $aPopUp_Text[$aPopUp_Text[0] + 1]
                    $aPopUp_Text[$aPopUp_Text[0]] = _GUICtrlMenu_GetItemText($hMenu, $j)
                EndIf
            Next
        EndIf
    EndIf

    Return $aPopUp_Text

EndFunc
It works for standard Windows menus, but not for ownerdrawn ones - so keep your fingers crossed. :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

  • Moderators
Posted

Automationuser,

Thank rover - most of the code was his, I just made it into a function. ;)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...