Jump to content

how to get the pressed menu item with out variable


Recommended Posts

hello guys
how are you؟
I hope to be fine.
I have a question  please
how do I get the menu item that was pressed without that contains a variable؟
For example I have a menu  of Favorites and I want the script recognizes the existing path in the pressed item
i'll repeat to tell the item does not contain a variable
Is there any solution
if you want to explain more I could write an example of what I want.
Greetings to all,
thanks in advance

Link to post
Share on other sites
  • Moderators

An example of what you want would be great, as I believe there is a language barrier issue. Please provide an example/screenshot that shows exactly what you're after.

"Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball

How to get your question answered on this forum!

Link to post
Share on other sites

OK this is an example

i want when i pressed ani item from the favourites menu the script run the path

#RequireAdmin
#include <GUIConstantsEx.au3>
#include <file.au3>
local $hGUI, $menu, $file, $path, $msg
$hGUI = GUICreate("menu item")
$menu = GUICtrlCreateMenu("Favourites")
GUISetState()
$file = @scriptDir & "\file.txt"
;Writing file
FileWrite($file, @systemDir & "\notepad.exe" & @crlf)
FileWrite($file, @systemDir & "\explorer.exe" & @crlf)
FileWrite($file, @systemDir & "\regedit.exe")
; add item to menu

for $i = 1 to _FileCountLines($file)
$add = GUICtrlCreateMenuItem(FileReadLine($file, $i), $menu)
next
FileDelete($file)

While 1
Switch GUIGetMSG()
case $GUI_event_close
exit
EndSwitch
Wend

Edited by nacerbaaziz
Link to post
Share on other sites
#RequireAdmin

#include <GuiMenu.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <file.au3>

Local $hGUI, $menu, $file

$hGUI = GUICreate("menu item")
$menu = GUICtrlCreateMenu("Favourites")
GUISetState()

GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

$file = @ScriptDir & "\file.txt"
;Writing file
FileWrite($file, @WindowsDir & "\notepad.exe" & @CRLF)
FileWrite($file, @WindowsDir & "\explorer.exe" & @CRLF)
FileWrite($file, @WindowsDir & "\regedit.exe")

; add item to menu
For $i = 1 To _FileCountLines($file)
    GUICtrlCreateMenuItem(FileReadLine($file, $i), $menu)
Next
FileDelete($file)

While 1
    Switch GUIGetMsg()
        Case $GUI_event_close
            Exit
    EndSwitch
WEnd

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
  Local $item = _GUICtrlMenu_GetItemSubMenu(_GUICtrlMenu_GetMenu($hGUI), 0)
  Run(_GUICtrlMenu_GetItemText($item, _GUICtrlMenu_MenuItemFromPoint($hGUI, $item)))
  Return $GUI_RUNDEFMSG
EndFunc

 

Link to post
Share on other sites

If you don't know how wm_command works then use native message loop

#RequireAdmin

#include <GUIConstantsEx.au3>
#include <file.au3>

Local $hGUI, $menu, $file, $item[3]

$hGUI = GUICreate("menu item")
$menu = GUICtrlCreateMenu("Favourites")
GUISetState()

$file = @ScriptDir & "\file.txt"
;Writing file
FileWrite($file, @WindowsDir & "\notepad.exe" & @CRLF)
FileWrite($file, @WindowsDir & "\explorer.exe" & @CRLF)
FileWrite($file, @WindowsDir & "\regedit.exe")

; add item to menu
For $i = 1 To _FileCountLines($file)
    $item[$i - 1] = GUICtrlCreateMenuItem(FileReadLine($file, $i), $menu)
Next
FileDelete($file)

While 1
    $msg = GUIGetMsg()
    Switch $msg
        Case $GUI_event_close
            Exit
        Case $item[0] To $item[2]
            Run(GUICtrlRead($msg, 1))
    EndSwitch
WEnd

 

Link to post
Share on other sites

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.

  • Similar Content

    • By Danyfirex
      AT Command UDF - for control AT Modems, send SMS, get SMS
       
      Changelog:
      #cs 1.0.0 2020/10/03 . First version - Danyfirex + mLipok 1.0.1 2020/10/04 . Added - Function - _ATCmd_IsPINReady - Danyfirex . Added - Function - _ATCmd_IsPINRequired - Danyfirex . Added - Function - _ATCmd_IsSIMInserted - Danyfirex . Added - Function - _ATCmd_IsSenderSupported - Danyfirex . Added - Function - _ATCmd_OnPINReques - Danyfirex . Added - Function - _ATCmd_SMS_ListTextMessages - Danyfirex . Added - Function - _ATCmd_SetPIN - Danyfirex . Added - Function - __ATCmd_GetPINCounter - Danyfirex - Added - ENUM - $ATCmd_ERR_PIN - Danyfirex - Added - ENUM - $ATCmd_ERR_SIM - Danyfirex . Changed - __ATCmd_ComposePDU() - using _ATCmd_UseUCS2() internally instead parameter - Danyfirex . Suplemented - #CURRENT# - Danyfirex . . 1.0.2 2020/10/05 . Added - ENUM - $ATCmd_MSGLIST_* - mLipok . Added - ENUM - $ATCmd_STATUS__* - mLipok - Added - ENUM - $ATCmd_ERR_PARAMETER - mLipok . Added - _ATCmd_UsePDU() - parameter validation - mLipok . Added - _ATCmd_UseUCS2() - parameter validation - mLipok . Added - more error logs . Changed - MagicNumber replaced with Standard UDF constants - mLipok . Small refactoring - mLipok . . 1.0.3 2020/10/05 . CleanUp - Danyfirex . . 1.0.4 2020/10/05 . Small refactoring - Danyfirex . CleanUp - Danyfirex . . 1.0.5 2020/10/23 . _ATCmd_FullLoging - mLipok . _ATCmd_CMEESetup() ... @WIP - mLipok . $ATCMD_STATUS_11_SUBSCRIBERNUMBER - mLipok . . 1.0.6 2020/10/25 . __ATCmd_CMSErrorParser() - mLipok . . @LAST https://www.nowsms.com/gsm-modem-cms-error-code-list https://m2msupport.net/m2msupport/at-command-to-enable-error-codes/ https://www.micromedia-int.com/en/gsm-2/73-gsm/669-cme-error-gsm-equipment-related-errors https://assets.nagios.com/downloads/nagiosxi/docs/ATCommandReference.pdf https://www.maritex.com.pl/product/attachment/40451/15b4db6d1a10eada42700f7293353776 https://www.multitech.net/developer/wp-content/uploads/2010/10/S000463C.pdf https://www.telit.com/wp-content/uploads/2017/09/Telit_AT_Commands_Reference_Guide_r24_B.pdf https://docs.rs-online.com/5931/0900766b80bec52c.pdf PDU Format / Testers / Encoders / decoders https://m2msupport.net/m2msupport/sms-at-commands/#pduformat http://smstools3.kekekasvi.com/topic.php?id=288 #ce  
       
      Saludos
    • By nacerbaaziz
      hello autoit team
      please i need your help
      i found that the youtube provide a way to get any video informations with this link
      https://youtube.com/get_video_info?video_id=id
      but it incoded i can not read it
      can any one tell me how to decode that please?
    • By Jahar
      Hi,
      I am new to Autoit, Kindly guide me. I wanted to send a message with HTTP/GET to the URL https://ghsff.it/. How to do so?
    • By Irios
      I have several context menus that's been built using _GUICtrlMenu_CreatePopup() and _GUICtrlMenu_AddMenuItem().
      When using _GUICtrlMenu_CreatePopup() it returns the identifier of the clicked item, sure. But it blocks the main loop while the menu is open.
      When using _GUICtrlMenu_CreatePopup($MNS_MODELESS) it returns immediately (of course), but I cannot figure out how/where to read the item that was clicked. Is there a Windows Message (WM) somewhere that is triggered? I've spend an entire day trying to figure out how to do this, but I'm not getting anywhere. My google fu is depleted (I must have tried like hundreds of script variations today), I'm about to smash my keyboard and just go to bed, and abandon the entire endeavor of making pretty menus and go back to using Koda and forget about using menu icons, colors,  etc.
      Anyone wanna help me out with how to read the clicked item? Before I smash my keyboard, please...
       
      Example script here:
       
      #include <GuiMenu.au3> #include <WinAPIError.au3> #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> GUIRegisterMsg($WM_CONTEXTMENU, "_WM_CONTEXTMENU") Global $idMenuItem = 10000, $counter = 0 Global $hGUI = GUICreate("Menu test", 400, 300) Global $hListview = GUICtrlCreateListView("", 2, 2, 396, 200) GUISetState(@SW_SHOW) ;~ Global $hMenuContext = _GUICtrlMenu_CreatePopup() Global $hMenuContext = _GUICtrlMenu_CreatePopup($MNS_MODELESS) _GUICtrlMenu_AddMenuItem($hMenuContext, "Menu item", $idMenuItem) Global $hTimer = TimerInit() Do If TimerDiff($hTimer)>200 Then $counter += 1 ConsoleWrite($counter & " " ) $hTimer = TimerInit() EndIf Until GUIGetMsg() = $GUI_EVENT_CLOSE Exit Func _WM_CONTEXTMENU($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $lParam Switch $wParam Case GUICtrlGetHandle($hListview) ConsoleWrite( @CRLF & "_GUICtrlMenu_TrackPopupMenu = " & _GUICtrlMenu_TrackPopupMenu($hMenuContext, $wParam, -1, -1, 1, 1, 2) & @CRLF) EndSwitch EndFunc  
       
×
×
  • Create New...