Jump to content

[Closed] Removing Some of the Available Operations in AutoIt Files ContextMenu in WindowsExplorer


Recommended Posts

Hi all


When I RightClick an .au3 file in WindowsExplorer,
it seems that AutoIt added quite too many operations there,
way too abundantly than what I find it comfortable to work with.

 

Auto-It-File-Ext-Context-Menu.png

 

During Installation, there wasn't an option to select which operations I would like to appear in the ContextMenu..
So I will now clean the ContextMenu a bit.


My question is:
Does AutoIt have some configuration place that I use to choose which ones to include and which to hide?

Or should we use an external utility that edits the ContextMenu for various file extensons?


Thank you

Edited by Zohar
Link to post
Share on other sites
  • Developers

These are added automatically by the installer. You could pretty easily remove registry keys you don't like. This this script to list the keys currently active:

#include <WindowsConstants.au3>
#include <EditConstants.au3>
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=C:\Program Files (x86)\AutoIt3\Icons\au3.ico
#AutoIt3Wrapper_Add_Constants=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;***********************************************************
; Scriptname: Get_AU3_Settings.au3
; Script to display Registry setting for SciTE & AutoIt3
; reporting possible issues with these settings
;***********************************************************
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
_Check_Au3_Registry()
;
Func _Check_Au3_Registry()
    Local $TotalMsg,$UserData
    Display_Console("******************************************************************************************************************************************" & @CRLF, $TotalMsg)
    Local $FixedOpen = RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.au3", "Application")
    Local $FixedOpenW7 = RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.au3\Userchoice", "ProgId")
    If $FixedOpen <> "" Then
        Display_Console("!*  Found always open with         :" & $FixedOpen & @CRLF, $TotalMsg)
        Display_Console('!*  Fixed by removing Registry Hyve: "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.au3" Key:"Application"' & @CRLF, $TotalMsg)
    EndIf
    If $FixedOpenW7 <> "" Then
        Display_Console("!*  Found always open with Win7    :" & $FixedOpenW7 & @CRLF, $TotalMsg)
        Display_Console('!*  Fixed by removing Registry key : "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.au3\Userchoice"' & @CRLF, $TotalMsg)
    EndIf
    Local $au3prof = RegRead("HKCR\.au3", "")
    If $au3prof <> "AutoIt3Script" And $au3prof <> "AutoIt3ScriptBeta" Then
        Display_Console('!*  Registry key: "HKCR\.au3" - "Default" is currently set to ' & $au3prof, $TotalMsg)
        Display_Console('   ==> This should be changed to "AutoIt3Script" (or "AutoIt3ScriptBeta")' & @CRLF, $TotalMsg)
;~  RegWrite("HKCR\.au3","","REG_SZ","AutoIt3Script")
    Else
        Display_Console("* HKCR\.au3 Default                  : " & $au3prof & @CRLF, $TotalMsg)
    EndIf

;~  $ShellNewWinDir = RegRead("HKEY_USERS\.default\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", "Filename")

    Local $RegKeyBase = "HKLM\SOFTWARE\Classes\.au3\ShellNew"
    Display_Console("* " & $RegKeyBase & ": " & @WindowsDir & "\SHELLNEW\" & RegRead($RegKeyBase, "Filename"), $TotalMsg)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : RegRead($RegKeyBase, "Filename") = ' & RegRead($RegKeyBase, "Filename") & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    If FileExists(@WindowsDir & "\SHELLNEW\" & RegRead($RegKeyBase, "Filename")) Then
        Display_Console(" (File Exists)" & @CRLF, $TotalMsg)
    Else
        Display_Console(" (*** File is Misssing!)" & @CRLF, $TotalMsg)
    EndIf
    Display_Console("* HKCR\.au3 ShellNew                 : " & @WindowsDir & "\SHELLNEW\" & RegRead("HKCR\.au3\Shellnew", "Filename"), $TotalMsg)
    If FileExists(@WindowsDir & "\SHELLNEW\" & RegRead("HKCR\.au3\Shellnew", "Filename")) Then
        Display_Console(" (File Exists)" & @CRLF, $TotalMsg)
    Else
        Display_Console(" (*** File is Misssing!)" & @CRLF, $TotalMsg)
    EndIf
    $RegKeyBase = "HKCR\" & $au3prof & "\shell"
    Display_Console("******************************************************************************************************************************************" & @CRLF, $TotalMsg)
    Display_Console("* Explorer shell options:" & @CRLF, $TotalMsg)
    Display_Console("* " & $RegKeyBase & ": " & @CRLF, $TotalMsg)
    Display_Console("*  => Default Action:" & RegRead($RegKeyBase, "") & @CRLF, $TotalMsg)
    Local  $var, $var2
    For $i = 1 To 30
        $var = RegEnumKey($RegKeyBase, $i)
        If @error <> 0 Then ExitLoop
        Display_Console("*     " & StringLeft($var & "                       ", 22), $TotalMsg)
        $var2 = RegEnumKey($RegKeyBase & "\" & $var, 1)
        Display_Console(" => " & $var2, $TotalMsg)
        Display_Console(":" & RegRead($RegKeyBase & "\" & $var & "\" & $var2, "") & @CRLF, $TotalMsg)
    Next
    Display_Console("******************************************************************************************************************************************" & @CRLF, $TotalMsg)
    Display_Console("* User SciTE info:" & @CRLF, $TotalMsg)
    If EnvGet("SCITE_USERHOME") <> "" Then
        $UserData = EnvGet("SCITE_USERHOME")
        Display_Console("*    SCITE_USERHOME:" & $UserData & ": " & @CRLF, $TotalMsg)
    ElseIf EnvGet("SCITE_HOME") <> "" Then
        $UserData = EnvGet("SCITE_HOME")
        Display_Console("*    SCITE_HOME:" & $UserData & ": " & @CRLF, $TotalMsg)
    Else
        $UserData = @ScriptDir
        Display_Console("*    Portable:" & $UserData & ": " & @CRLF, $TotalMsg)
    EndIf
    If Not FileExists($UserData) Then
        Display_Console("*    Directory missing: " & $UserData, $TotalMsg)
    Else
        ; Check directory structure
        If Not FileExists($UserData & "\Au3Stripper") Then Display_Console("*    Directory missing: " & $UserData & "\Au3Stripper" & @CRLF, $TotalMsg)
        If Not FileExists($UserData & "\AutoIt3Wrapper") Then Display_Console("*    Directory missing: " & $UserData & "\AutoIt3Wrapper" & @CRLF, $TotalMsg)
        If Not FileExists($UserData & "\CodeWizard") Then Display_Console("*    Directory missing: " & $UserData & "\CodeWizard" & @CRLF, $TotalMsg)
        If Not FileExists($UserData & "\SciTE Jump") Then Display_Console("*    Directory missing: " & $UserData & "\SciTE Jump" & @CRLF, $TotalMsg)
        If Not FileExists($UserData & "\SciTEConfig") Then Display_Console("*    Directory missing: " & $UserData & "\SciTEConfig" & @CRLF, $TotalMsg)
        If Not FileExists($UserData & "\Tidy") Then Display_Console("*    Directory missing: " & $UserData & "\Tidy" & @CRLF, $TotalMsg)
        ; check key files
        If Not FileExists($UserData & "\abbrev.properties") Then
            Display_Console("*    File missing: " & $UserData & "\Aabbrev.properties" & @CRLF, $TotalMsg)
        Else
            If Not FileGetSize($UserData & "\abbrev.properties") Then Display_Console("*    File empty: " & $UserData & "\Abbrev.properties" & @CRLF, $TotalMsg)
        EndIf
        If Not FileExists($UserData & "\au3abbrev.properties") Then
            Display_Console("*    File missing: " & $UserData & "\au3abbrev.properties" & @CRLF, $TotalMsg)
        Else
            If Not FileGetSize($UserData & "\au3abbrev.properties") Then Display_Console("*    File empty: " & $UserData & "\au3abbrev.properties" & @CRLF, $TotalMsg)
        EndIf
        If Not FileExists($UserData & "\SciTEUSer.properties") Then
            Display_Console("*    No SciTEUSer.properties yet" & @CRLF, $TotalMsg)
        Else
            Display_Console("*    SciTEUSer.Properties: " & @CRLF, $TotalMsg)
            Display_Console("*-----------------------------------------------------------------------------------------" & @CRLF, $TotalMsg)
            Display_Console(FileRead($UserData & "\SciTEUSer.properties") & @CRLF, $TotalMsg)
        EndIf
    EndIf
    Display_Console("******************************************************************************************************************************************" & @CRLF, $TotalMsg)
    ClipPut($TotalMsg)
    GUICreate(".au3 registry settings", 1000, 600)
    GUICtrlCreateEdit($TotalMsg, 1, 1, 998, 560,$ES_READONLY+$WS_VSCROLL+$ES_AUTOVSCROLL)
    GUICtrlSetFont(-1, Default, Default, Default, "Courier New")
    Local $HReg_Exit = GUICtrlCreateButton("Exit", 450, 570, 50, 25)
    GUICtrlCreateLabel("* information is stored on the clipboard.", 10, 575)
    GUISetState(@SW_SHOW)
    Do
        $msg = GUIGetMsg()
    Until $msg = $GUI_EVENT_CLOSE Or $msg = $HReg_Exit
    GUIDelete()
EndFunc   ;==>_Check_Au3_Registry
;
Func Display_Console($msg, ByRef $TotalMsg)
;~  ConsoleWrite($msg)
    $TotalMsg &= $msg
EndFunc   ;==>Display_Console

 It will display a gui with this kind of output:  The Red line is the registry key which either contains  HKCR\AutoIt3Script\shell:  or  HKCR\AutoIt3ScriptBeta\shell: 

Quote

******************************************************************************************************************************************
* HKCR\.au3 Default                  : AutoIt3ScriptBeta
* HKLM\SOFTWARE\Classes\.au3\ShellNew: C:\WINDOWS\SHELLNEW\Template.au3 (File Exists)
* HKCR\.au3 ShellNew                 : C:\WINDOWS\SHELLNEW\Template.au3 (File Exists)
******************************************************************************************************************************************
* Explorer shell options:
* HKCR\AutoIt3ScriptBeta\shell: 
*  => Default Action:Open
*     Compile                => Command:"C:\Program Files (x86)\AutoIt3\Beta\Aut2Exe\Aut2Exe.exe" /in "%l"
*     Compile with Options   => Command:"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /ShowGui /in "%l"
*     CompileX64             => Command:"C:\Program Files (x86)\AutoIt3\Beta\Aut2Exe\Aut2Exe_x64.exe" /in "%l"
*     CompileX86             => Command:"C:\Program Files (x86)\AutoIt3\Beta\Aut2Exe\Aut2Exe.exe" /in "%l"
*     Edit                   => Command:"C:\Program Files (x86)\AutoIt3\SciTE\SciTE.exe" "%1"
*     Open                   => Command:start /D "C:\Program Files (x86)\AutoIt3\SciTE" "C:\Program Files (x86)\AutoIt3\SciTE\SciTE.exe"  "%1"
*     Run                    => Command:"C:\Program Files (x86)\AutoIt3\AutoIt3.exe" "%1" %*
*     RunX64                 => Command:"C:\Program Files (x86)\AutoIt3\Beta\AutoIt3_x64.exe" "%1" %*
*     RunX86                 => Command:"C:\Program Files (x86)\AutoIt3\Beta\AutoIt3.exe" "%1" %*
******************************************************************************************************************************************

So just create a simple autoit3script in which to delete the entries you don't like. ;) 

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to post
Share on other sites
Posted (edited)

I see.

Thank you very much.


If I may recommend:
When a program has quite many operations that it puts in the ContextMenu,
it is quite helpful to create a SubMenu in the CotnextMenu.

That way, only 2-3 highly used operations remain outside (in the root level),
such as Open, Run, Edit,

and in the SubMenu, all the other operations will reside..

If you guys can consider this,
it will make the menu much nicer.

Edited by Zohar
Link to post
Share on other sites
23 hours ago, Exit said:

I like the bigger one. Only one click to reach all options. :thumbsup:

Then during installation the user can choose what he prefers..
The bigger one with all in Root level,
or only 2-3 in root, and the rest under a submenu

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.

×
×
  • Create New...