Send Item Selection from Right-Click Menu

Get help with using AutoHotkey (v2 or newer) and its commands and hotkeys
cougarx1
Posts: 2
Joined: 31 Mar 2023, 18:32
Contact:

Send Item Selection from Right-Click Menu

Post by cougarx1 » 31 Mar 2023, 18:48

Ok, so I have a script using v1 and I can make it work. The script creates a right-click menu, which in turn gives me three submenus, and in each submenu I have a list of options. One is a Username one and another is an email address one. When I click on the selection, it then sends that text. It works just fine. I am converting it to v2 and have gotten everything working except for the actual sending of the menu item. I click it, and it just does nothing. So:
v1 snips:

Code: Select all

Menu, Submenu2, Add, praetorian, MenuHandler
Menu, Submenu3, Add, [email protected], MenuHandler
Menu, Pass, Add, Username, :Submenu2
Menu, Pass, Add, Email, :Submenu3
return
MenuHandler:
if (A_ThisMenu = "Submenu3")
{
send %A_ThisMenuItem%
sleep, 1000
return
}
if (A_ThisMenu = "Submenu2")
{
send %A_ThisMenuItem%{tab}
sleep, 1000
return
}
return
^!a::Menu, Pass, Show
v2 snips:

Code: Select all

Submenu2 := Menu()
Submenu2.Add("praetorian", MenuHandler)
Submenu3 := Menu()
Submenu3.Add("[email protected]", MenuHandler)
MyMenu := Menu()
MyMenu.Add("Username", Submenu2)
MyMenu.Add("Email", Submenu3)
return
MenuHandler(A_ThisMenuItem, A_ThisMenuItemPos, A_ThisMenu)
{
if (A_ThisMenu = "Submenu3")
{
Sendinput(A_ThisMenuItem)
Sleep(1000)
return
}
if (A_ThisMenu = "Submenu2")
{
Sendinput(A_ThisMenuItem "{tab}")
Sleep(1000)
return
}
return
}
^!a::MyMenu.Show
What am I doing wrong? I have learned things along the way, and was able to rectify every other part of my v1 script to make it v2 except this.

User avatar
mikeyww
Posts: 26869
Joined: 09 Sep 2014, 18:38

Re: Send Item Selection from Right-Click Menu

Post by mikeyww » 31 Mar 2023, 21:13

Welcome to this AutoHotkey forum!

This is explained in the documentation. A menu is an object. Read: Add.

Code: Select all

#Requires AutoHotkey v2.0
m        := Menu()
Submenu2 := Menu(), Submenu2.Name := 'sub2'
Submenu3 := Menu(), Submenu3.Name := 'sub3'
Submenu2.Add('praetorian', paste)
Submenu3.Add('[email protected]', paste)
m.Add('Username', Submenu2)
m.Add('Email'   , Submenu3)

^!a::m.Show

paste(itemName, itemPos, menu) {
 SendText itemName (menu.Name = 'sub2' ? '`t' : '')
}

cougarx1
Posts: 2
Joined: 31 Mar 2023, 18:32
Contact:

Re: Send Item Selection from Right-Click Menu

Post by cougarx1 » 03 Apr 2023, 13:10

Awesome. It worked. Yer a boss!

Thanks so much.

Post Reply

Return to “Ask for Help (v2)”