Juvigy Posted November 9, 2010 Share Posted November 9, 2010 (edited) The only thing i could find is to create a submenu in the Tools or Help menus but cant seem to find how to do a root menu. Found out and example of doing that with Calculator for example using _GUICtrlMenu_GetMenu and _GUICtrlMenu_CreateMenu() but it doesnt work for IE for some reason - GetMenu fails. I am counting on Dale here as he is the expert here , but if someone have suggestions please feel free to enlighten me. 10x . Edited November 12, 2010 by Juvigy Link to comment Share on other sites More sharing options...
PsaltyDS Posted November 9, 2010 Share Posted November 9, 2010 (edited) Maybe it can be done, I haven't tried, but don't be surprised if it can't. Calculator doesn't have the thousands of man-hours of work in anti-malware and security that IE has. Lots of things don't work in IE that might work elsewhere because it has a lot more defensive measures included. That's what necessarily comes of years as the most targeted/pwnd app of all time.Edit: Quoting from KaFu's first link below: Not all menus are accessible by your add-ons, however. Add-ons are limited to the Tools and Help menus, and to the various context menus used on a Web page. Personally, I think this is a good thing. Imagine the havoc a hacker might create if they could add items to the File menu. The user might think they are printing a Web page, when in fact they might be running malicious code inserted as an add-on. Edited November 11, 2010 by PsaltyDS Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Link to comment Share on other sites More sharing options...
Juvigy Posted November 11, 2010 Author Share Posted November 11, 2010 I need to create a menu with submenus in IE Menubar or in the IE toolbar but cant seem to find how to do it. Found something about visual studio but i hope there is another way. Link to comment Share on other sites More sharing options...
KaFu Posted November 11, 2010 Share Posted November 11, 2010 Maybe these MSDN articles provide some help:Creating Add-ons for Internet Explorer: Customizing MenusCreating Add-ons for Internet Explorer: Toolbar Buttons  OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2022-Nov-26) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Feb-16) HMW - Hide my Windows (2018-Sep-16) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2023-Jun-03) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16) Link to comment Share on other sites More sharing options...
Juvigy Posted November 12, 2010 Author Share Posted November 12, 2010 I tried this , but dont get any result: expandcollapse popupGlobal $hReBar,$oIE,$hWndTarget,$test,$iStyle $oIE = _IECreate("about:blank") $hWndTarget = _IEPropertyGet ($oIE, "hwnd") ConsoleWrite($hWndTarget&@CRLF) $iStyle = BitOR($WS_BORDER,$WS_CHILD,$WS_CLIPCHILDREN,$WS_CLIPSIBLINGS,$WS_VISIBLE,$RBS_BANDBORDERS,$RBS_DBLCLKTOGGLE,$RBS_REGISTERDROP,$RBS_VARHEIGHT,$CCS_NODIVIDER,$CCS_NOPARENTALIGN) ;~ _WinAPI_CreateWindowEx($WS_EX_TOOLWINDOW, "TOOLBARCLASSNAME", "New toolbar", $iStyle, $iX, $iY, $iWidth, $iHeight, $hParent[, $hMenu = 0[, $hInstance = 0[, $pParam = 0]]]) $Debug_RB = False _Main() Func _Main() Local $hToolbar, $hCombo, $hDTP Local Enum $idNew = 1000, $idOpen, $idSave, $idHelp ; create the rebar control $hReBar = _GUICtrlReBar_Create($hWndTarget, $iStyle) ConsoleWrite($hReBar&@CRLF) ; create a toolbar to put in the rebar $hToolbar = _GUICtrlToolBar_Create($hWndTarget, BitOR($TBSTYLE_FLAT, $CCS_NORESIZE, $CCS_NOPARENTALIGN)) ConsoleWrite($hToolbar&@CRLF) ; Add standard system bitmaps Switch _GUICtrlToolbar_GetBitmapFlags($hToolbar) Case 0 _GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_SMALL_COLOR) Case 2 _GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR) EndSwitch ; Add buttons _GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW) _GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN) _GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE) _GUICtrlToolbar_AddButtonSep($hToolbar) _GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP) ; create a combobox to put in the rebar $hCombo = _GUICtrlComboBox_Create($hWndTarget, "", 0, 0, 120) ConsoleWrite($hCombo&@CRLF) _GUICtrlComboBox_BeginUpdate($hCombo) _GUICtrlComboBox_AddDir($hCombo, @WindowsDir & "\*.exe") _GUICtrlComboBox_EndUpdate($hCombo) ; create a date time picker to put in the rebar $hDTP = _GUICtrlDTP_Create($hWndTarget, 0, 0, 190) ; default for add is append ; add band with control $test = _GUICtrlReBar_AddBand($hReBar, $hCombo, 120, 200, "Dir *.exe") ConsoleWrite($test&@CRLF) ; add band with date time picker $test = _GUICtrlReBar_AddBand($hReBar, $hDTP, 120) ConsoleWrite($test&@CRLF) ; add band with toolbar to begining of rebar $test = _GUICtrlReBar_AddToolBarBand($hReBar, $hToolbar, "", 0) ConsoleWrite($test&@CRLF) $test = _WinAPI_RedrawWindow($hWndTarget,0,0,$RDW_ALLCHILDREN) ConsoleWrite($test&@CRLF) EndFunc ;==>_Main Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) #forceref $hWnd, $iMsg, $iwParam Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR Local $tAUTOBREAK, $tAUTOSIZE, $tNMREBAR, $tCHEVRON, $tCHILDSIZE, $tOBJECTNOTIFY $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hReBar Switch $iCode Case $RBN_AUTOBREAK ; Notifies a rebar's parent that a break will appear in the bar. The parent determines whether to make the break $tAUTOBREAK = DllStructCreate($tagNMREBARAUTOBREAK, $ilParam) _DebugPrint("$RBN_AUTOBREAK" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tAUTOBREAK, "hWndFrom") & @LF & _ "-->IDFrom:" & @TAB & DllStructGetData($tAUTOBREAK, "IDFrom") & @LF & _ "-->Code:" & @TAB & DllStructGetData($tAUTOBREAK, "Code") & @LF & _ "-->uBand:" & @TAB & DllStructGetData($tAUTOBREAK, "uBand") & @LF & _ "-->wID:" & @TAB & DllStructGetData($tAUTOBREAK, "wID") & @LF & _ "-->lParam:" & @TAB & DllStructGetData($tAUTOBREAK, "lParam") & @LF & _ "-->uMsg:" & @TAB & DllStructGetData($tAUTOBREAK, "uMsg") & @LF & _ "-->fStyleCurrent:" & @TAB & DllStructGetData($tAUTOBREAK, "fStyleCurrent") & @LF & _ "-->fAutoBreak:" & @TAB & DllStructGetData($tAUTOBREAK, "fAutoBreak")) ; Return value not used Case $RBN_AUTOSIZE ; Sent by a rebar control created with the $RBS_AUTOSIZE style when the rebar automatically resizes itself $tAUTOSIZE = DllStructCreate($tagNMRBAUTOSIZE, $ilParam) _DebugPrint("$RBN_AUTOSIZE" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tAUTOSIZE, "hWndFrom") & @LF & _ "-->IDFrom:" & @TAB & DllStructGetData($tAUTOSIZE, "IDFrom") & @LF & _ "-->Code:" & @TAB & DllStructGetData($tAUTOSIZE, "Code") & @LF & _ "-->fChanged:" & @TAB & DllStructGetData($tAUTOSIZE, "fChanged") & @LF & _ "-->TargetLeft:" & @TAB & DllStructGetData($tAUTOSIZE, "TargetLeft") & @LF & _ "-->TargetTop:" & @TAB & DllStructGetData($tAUTOSIZE, "TargetTop") & @LF & _ "-->TargetRight:" & @TAB & DllStructGetData($tAUTOSIZE, "TargetRight") & @LF & _ "-->TargetBottom:" & @TAB & DllStructGetData($tAUTOSIZE, "TargetBottom") & @LF & _ "-->ActualLeft:" & @TAB & DllStructGetData($tAUTOSIZE, "ActualLeft") & @LF & _ "-->ActualTop:" & @TAB & DllStructGetData($tAUTOSIZE, "ActualTop") & @LF & _ "-->ActualRight:" & @TAB & DllStructGetData($tAUTOSIZE, "ActualRight") & @LF & _ "-->ActualBottom:" & @TAB & DllStructGetData($tAUTOSIZE, "ActualBottom")) ; Return value not used Case $RBN_BEGINDRAG ; Sent by a rebar control when the user begins dragging a band $tNMREBAR = DllStructCreate($tagNMREBAR, $ilParam) _DebugPrint("$RBN_BEGINDRAG" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMREBAR, "hWndFrom") & @LF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMREBAR, "IDFrom") & @LF & _ "-->Code:" & @TAB & DllStructGetData($tNMREBAR, "Code") & @LF & _ "-->dwMask:" & @TAB & DllStructGetData($tNMREBAR, "dwMask") & @LF & _ "-->uBand:" & @TAB & DllStructGetData($tNMREBAR, "uBand") & @LF & _ "-->fStyle:" & @TAB & DllStructGetData($tNMREBAR, "fStyle") & @LF & _ "-->wID:" & @TAB & DllStructGetData($tNMREBAR, "wID") & @LF & _ "-->lParam:" & @TAB & DllStructGetData($tNMREBAR, "lParam")) Return 0 ; to allow the rebar to continue the drag operation ;~ Return 1 ; nonzero to abort the drag operation Case $RBN_CHEVRONPUSHED ; Sent by a rebar control when a chevron is pushed ; When an application receives this notification, it is responsible for displaying a popup menu with items for each hidden tool. ; Use the rc member of the NMREBARCHEVRON structure to find the correct position for the popup menu $tCHEVRON = DllStructCreate($tagNMREBARCHEVRON, $ilParam) _DebugPrint("$RBN_CHEVRONPUSHED" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tCHEVRON, "hWndFrom") & @LF & _ "-->IDFrom:" & @TAB & DllStructGetData($tCHEVRON, "IDFrom") & @LF & _ "-->Code:" & @TAB & DllStructGetData($tCHEVRON, "Code") & @LF & _ "-->uBand:" & @TAB & DllStructGetData($tCHEVRON, "uBand") & @LF & _ "-->wID:" & @TAB & DllStructGetData($tCHEVRON, "wID") & @LF & _ "-->lParam:" & @TAB & DllStructGetData($tCHEVRON, "lParam") & @LF & _ "-->Left:" & @TAB & DllStructGetData($tCHEVRON, "Left") & @LF & _ "-->Top:" & @TAB & DllStructGetData($tCHEVRON, "Top") & @LF & _ "-->Right:" & @TAB & DllStructGetData($tCHEVRON, "Right") & @LF & _ "-->lParamNM:" & @TAB & DllStructGetData($tCHEVRON, "lParamNM")) ; Return value not used Case $RBN_CHILDSIZE ; Sent by a rebar control when a band's child window is resized $tCHILDSIZE = DllStructCreate($tagNMREBARCHILDSIZE, $ilParam) _DebugPrint("$RBN_CHILDSIZE" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tCHILDSIZE, "hWndFrom") & @LF & _ "-->IDFrom:" & @TAB & DllStructGetData($tCHILDSIZE, "IDFrom") & @LF & _ "-->Code:" & @TAB & DllStructGetData($tCHILDSIZE, "Code") & @LF & _ "-->uBand:" & @TAB & DllStructGetData($tCHILDSIZE, "uBand") & @LF & _ "-->wID:" & @TAB & DllStructGetData($tCHILDSIZE, "wID") & @LF & _ "-->CLeft:" & @TAB & DllStructGetData($tCHILDSIZE, "CLeft") & @LF & _ "-->CTop:" & @TAB & DllStructGetData($tCHILDSIZE, "CTop") & @LF & _ "-->CRight:" & @TAB & DllStructGetData($tCHILDSIZE, "CRight") & @LF & _ "-->CBottom:" & @TAB & DllStructGetData($tCHILDSIZE, "CBottom") & @LF & _ "-->BLeft:" & @TAB & DllStructGetData($tCHILDSIZE, "BandLeft") & @LF & _ "-->BTop:" & @TAB & DllStructGetData($tCHILDSIZE, "BTop") & @LF & _ "-->BRight:" & @TAB & DllStructGetData($tCHILDSIZE, "BRight") & @LF & _ "-->BBottom:" & @TAB & DllStructGetData($tCHILDSIZE, "BBottom")) ; Return value not used Case $RBN_DELETEDBAND ; Sent by a rebar control after a band has been deleted $tNMREBAR = DllStructCreate($tagNMREBAR, $ilParam) _DebugPrint("$RBN_DELETEDBAND" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMREBAR, "hWndFrom") & @LF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMREBAR, "IDFrom") & @LF & _ "-->Code:" & @TAB & DllStructGetData($tNMREBAR, "Code") & @LF & _ "-->dwMask:" & @TAB & DllStructGetData($tNMREBAR, "dwMask") & @LF & _ "-->uBand:" & @TAB & DllStructGetData($tNMREBAR, "uBand") & @LF & _ "-->fStyle:" & @TAB & DllStructGetData($tNMREBAR, "fStyle") & @LF & _ "-->wID:" & @TAB & DllStructGetData($tNMREBAR, "wID") & @LF & _ "-->lParam:" & @TAB & DllStructGetData($tNMREBAR, "lParam")) ; Return value not used Case $RBN_DELETINGBAND ; Sent by a rebar control when a band is about to be deleted $tNMREBAR = DllStructCreate($tagNMREBAR, $ilParam) _DebugPrint("$RBN_DELETINGBAND" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMREBAR, "hWndFrom") & @LF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMREBAR, "IDFrom") & @LF & _ "-->Code:" & @TAB & DllStructGetData($tNMREBAR, "Code") & @LF & _ "-->dwMask:" & @TAB & DllStructGetData($tNMREBAR, "dwMask") & @LF & _ "-->uBand:" & @TAB & DllStructGetData($tNMREBAR, "uBand") & @LF & _ "-->fStyle:" & @TAB & DllStructGetData($tNMREBAR, "fStyle") & @LF & _ "-->wID:" & @TAB & DllStructGetData($tNMREBAR, "wID") & @LF & _ "-->lParam:" & @TAB & DllStructGetData($tNMREBAR, "lParam")) ; Return value not used Case $RBN_ENDDRAG ; Sent by a rebar control when the user stops dragging a band $tNMREBAR = DllStructCreate($tagNMREBAR, $ilParam) _DebugPrint("$RBN_ENDDRAG" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tNMREBAR, "hWndFrom") & @LF & _ "-->IDFrom:" & @TAB & DllStructGetData($tNMREBAR, "IDFrom") & @LF & _ "-->Code:" & @TAB & DllStructGetData($tNMREBAR, "Code") & @LF & _ "-->dwMask:" & @TAB & DllStructGetData($tNMREBAR, "dwMask") & @LF & _ "-->uBand:" & @TAB & DllStructGetData($tNMREBAR, "uBand") & @LF & _ "-->fStyle:" & @TAB & DllStructGetData($tNMREBAR, "fStyle") & @LF & _ "-->wID:" & @TAB & DllStructGetData($tNMREBAR, "wID") & @LF & _ "-->lParam:" & @TAB & DllStructGetData($tNMREBAR, "lParam")) ; Return value not used Case $RBN_GETOBJECT ; Sent by a rebar control created with the $RBS_REGISTERDROP style when an object is dragged over a band in the control $tOBJECTNOTIFY = DllStructCreate($tagNMOBJECTNOTIFY, $ilParam) _DebugPrint("$RBN_GETOBJECT" & @LF & "--> hWndFrom:" & @TAB & DllStructGetData($tOBJECTNOTIFY, "hWndFrom") & @LF & _ "-->IDFrom:" & @TAB & DllStructGetData($tOBJECTNOTIFY, "IDFrom") & @LF & _ "-->Code:" & @TAB & DllStructGetData($tOBJECTNOTIFY, "Code") & @LF & _ "-->Item:" & @TAB & DllStructGetData($tOBJECTNOTIFY, "Item") & @LF & _ "-->piid:" & @TAB & DllStructGetData($tOBJECTNOTIFY, "piid") & @LF & _ "-->pObject:" & @TAB & DllStructGetData($tOBJECTNOTIFY, "pObject") & @LF & _ "-->Result:" & @TAB & DllStructGetData($tOBJECTNOTIFY, "Result")) ; Return value not used Case $RBN_HEIGHTCHANGE ; Sent by a rebar control when its height has changed ; Rebar controls that use the $CCS_VERT style send this notification message when their width changes _DebugPrint("$RBN_HEIGHTCHANGE" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _ "-->Code:" & @TAB & $iCode) ; Return value not used Case $RBN_LAYOUTCHANGED ; Sent by a rebar control when the user changes the layout of the control's bands _DebugPrint("$RBN_LAYOUTCHANGED" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _ "-->Code:" & @TAB & $iCode) ; Return value not used Case $RBN_MINMAX ; Sent by a rebar control prior to maximizing or minimizing a band _DebugPrint("$RBN_MINMAX" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _ "-->IDFrom:" & @TAB & $iIDFrom & @LF & _ "-->Code:" & @TAB & $iCode) ;~ Return 1 ; a non-zero value to prevent the operation from taking place Return 0 ; zero to allow it to continue EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Func _DebugPrint($s_text, $line = @ScriptLineNumber) ConsoleWrite( _ "!===========================================================" & @LF & _ "+======================================================" & @LF & _ "-->Line(" & StringFormat("%04d", $line) & "):" & @TAB & $s_text & @LF & _ "+======================================================" & @LF) EndFunc ;==>_DebugPrint Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now