F4MiniMenu (AHK): F4Menu w. Drag&Drop, filelist, cmdline (XYPlorer, Everything, Explorer, Double Commander)
Moderators: Hacker, petermad, Stefan2, white
F4MiniMenu (AHK): F4Menu w. Drag&Drop, filelist, cmdline (XYPlorer, Everything, Explorer, Double Commander)
Hi,
as I personally don't need all the functionality of F4Menu and because I needed Drag&Drop support opening of files to avoid multiple instances of my old graphics program I've written a minimalistic clone of F4Menu in AutoHotkey.
Source code and compiled versions (see releases) @ https://github.com/hi5/F4MiniMenu
Introduction
F4 is the shortcut key used in Total Commander for opening selected files in a pre-defined program.
In TC only one program can be assigned to F4 making it impossible to define or select other editors for different file types. Several tools have been made to solve this problem, these include:
- ChoiceEditor, http://www.totalcmd.net/plugring/ChoiceEditor.html
- Open File shell for TC, http://www.totalcmd.net/plugring/OpenFileTC.html
- Total Commander Edit Redirector, http://ghisler.ch/board/viewtopic.php?t=27573
- and of course the original F4Menu, http://ghisler.ch/board/viewtopic.php?t=17003 (original download links offline, see the thread for backup links)
While the original F4Menu has quite a few options, this minimalistic "clone" only has the
basic functionality: opening multiple file types in various programs.
One additional feature is that it can open selected files using a "Drag & Drop" method (a personal requirement). As of v0.5 it also has "Filelist" support.
v0.9 (June 16th 2016) - wildcard support and included INI version for those who prefer to store settings in INI format.
v0.94b (January 14th 2017) - added 4th method: cmdline
v0.95 (July 2017) - added F4TCIE for internal edit command so it can be used in archives/FTP. DocumentTemplates (shift+F4) for new files.
v0.97 (June 2019) - added Filtered menu, close on Exit of TC (setting)
v1.00 (May 2022) - Rudimentary support for Windows Explorer, Double Commander, XYPlorer, and Everything
Instructions, Source, Screenshots & Download:
AutoHotkey 1.1+ (Ansi and Unicode)
https://github.com/hi5/F4MiniMenu
(just click on the ZIP link to download all files and unpack)
Simply run the script and it will use the F4 hotkey, you can exit the script via the tray icon, right click, exit.
Edit July 1st 2013: Unicode now works, fixed some other issues
Edit Mar 30th 2013: removed unicode branch + added filelist info
Edit Dec 15th 2012: rewrote entire post
as I personally don't need all the functionality of F4Menu and because I needed Drag&Drop support opening of files to avoid multiple instances of my old graphics program I've written a minimalistic clone of F4Menu in AutoHotkey.
Source code and compiled versions (see releases) @ https://github.com/hi5/F4MiniMenu
Introduction
F4 is the shortcut key used in Total Commander for opening selected files in a pre-defined program.
In TC only one program can be assigned to F4 making it impossible to define or select other editors for different file types. Several tools have been made to solve this problem, these include:
- ChoiceEditor, http://www.totalcmd.net/plugring/ChoiceEditor.html
- Open File shell for TC, http://www.totalcmd.net/plugring/OpenFileTC.html
- Total Commander Edit Redirector, http://ghisler.ch/board/viewtopic.php?t=27573
- and of course the original F4Menu, http://ghisler.ch/board/viewtopic.php?t=17003 (original download links offline, see the thread for backup links)
While the original F4Menu has quite a few options, this minimalistic "clone" only has the
basic functionality: opening multiple file types in various programs.
One additional feature is that it can open selected files using a "Drag & Drop" method (a personal requirement). As of v0.5 it also has "Filelist" support.
v0.9 (June 16th 2016) - wildcard support and included INI version for those who prefer to store settings in INI format.
v0.94b (January 14th 2017) - added 4th method: cmdline
v0.95 (July 2017) - added F4TCIE for internal edit command so it can be used in archives/FTP. DocumentTemplates (shift+F4) for new files.
v0.97 (June 2019) - added Filtered menu, close on Exit of TC (setting)
v1.00 (May 2022) - Rudimentary support for Windows Explorer, Double Commander, XYPlorer, and Everything
Instructions, Source, Screenshots & Download:
AutoHotkey 1.1+ (Ansi and Unicode)
https://github.com/hi5/F4MiniMenu
(just click on the ZIP link to download all files and unpack)
Simply run the script and it will use the F4 hotkey, you can exit the script via the tray icon, right click, exit.
Edit July 1st 2013: Unicode now works, fixed some other issues
Edit Mar 30th 2013: removed unicode branch + added filelist info
Edit Dec 15th 2012: rewrote entire post
Last edited by hi5 on 2023-10-30, 18:40 UTC, edited 19 times in total.
F4MiniMenu (Forum) - Open selected file(s) from TC in defined editor(s) - A (minimalistic) clone of F4Menu
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
A new version is available with userfriendly guis. There are now also screenshots at the GitHub page.
edit: after this post posting links was allowed, so see first post or signature
edit: after this post posting links was allowed, so see first post or signature
F4MiniMenu (Forum) - Open selected file(s) from TC in defined editor(s) - A (minimalistic) clone of F4Menu
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
Thanks.
Great work.
But the configuration file in xml is complicated.
It would be more convenient in ini format.
Great work.
But the configuration file in xml is complicated.
It would be more convenient in ini format.
"I used to feel guilty in Cambridge that I spent all day playing games, while I was supposed to be doing mathematics. Then, when I discovered surreal numbers, I realized that playing games IS math." John Horton Conway
- Balderstrom
- Power Member
- Posts: 2148
- Joined: 2005-10-11, 10:10 UTC
That and AHK has built in functions for handling/parsing/writing INI files.
Question? Why use "ANSI" ... if you are going to continue development of such a tool, I'd recommend switching to Unicode AHK_L -- if yer not using manual memory allocation you wont see much (if any) difference between the ANSI and Unicode AHK binaries.
Question? Why use "ANSI" ... if you are going to continue development of such a tool, I'd recommend switching to Unicode AHK_L -- if yer not using manual memory allocation you wont see much (if any) difference between the ANSI and Unicode AHK binaries.
*BLINK* TC9 Added WM_COPYDATA and WM_USER queries for scripting.
Hi,
thanks for the feedback.
With the v0.4 version of the script there is no particular need to edit the XML file manually as all settings can be changed via user friendly Gui's - you can see the screenshots on the GitHub page here https://github.com/hi5/F4MiniMenu#screenshots
(Settings available via the tray menu)
However, I did see some Ini <-> Object functions/libraries so I will look into that to see if they are as easy to use as the current XA library I'm using and I might switch.
I did find a Unicode version but haven't been able to get it to work yet.
Ideally I would use one function for both the Ansi and Unicode versions of AHK and will keep looking into it.
(I'm not an experienced programmer so I have to use "advanced" functions as I find them).
I'll post here about any significant updates, see also the TODO list https://github.com/hi5/F4MiniMenu#todo---known-issues (below that you will the links to function I used as well)
thanks for the feedback.
As I make use of AHK 1.1+ Object's capabilities saving and loading settings as XML is just one command which makes it very easy for me to use.LonerD wrote:Thanks.
Great work.
But the configuration file in xml is complicated.
It would be more convenient in ini format.
With the v0.4 version of the script there is no particular need to edit the XML file manually as all settings can be changed via user friendly Gui's - you can see the screenshots on the GitHub page here https://github.com/hi5/F4MiniMenu#screenshots
(Settings available via the tray menu)
True (IniRead/IniWrite/IniDelete), but they are also tedious to use if you want to read/store many variables even if you use Loops and some other tricks.Balderstrom wrote:That and AHK has built in functions for handling/parsing/writing INI files.
However, I did see some Ini <-> Object functions/libraries so I will look into that to see if they are as easy to use as the current XA library I'm using and I might switch.
I use ANSI because of the Drag & Drop function I currently use. That only works with AHK Ansi I'm afraid due to the DLL Call / NumPut functions it uses (they don't work in Unicode)Balderstrom wrote:Question? Why use "ANSI" ... if you are going to continue development of such a tool, I'd recommend switching to Unicode AHK_L -- if yer not using manual memory allocation you wont see much (if any) difference between the ANSI and Unicode AHK binaries.
I did find a Unicode version but haven't been able to get it to work yet.
Ideally I would use one function for both the Ansi and Unicode versions of AHK and will keep looking into it.
(I'm not an experienced programmer so I have to use "advanced" functions as I find them).
I'll post here about any significant updates, see also the TODO list https://github.com/hi5/F4MiniMenu#todo---known-issues (below that you will the links to function I used as well)
F4MiniMenu (Forum) - Open selected file(s) from TC in defined editor(s) - A (minimalistic) clone of F4Menu
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
- Balderstrom
- Power Member
- Posts: 2148
- Joined: 2005-10-11, 10:10 UTC
I haven't found that to be the case ...hi5 wrote:True (IniRead/IniWrite/IniDelete), but they are also tedious to use if you want to read/store many variables even if you use Loops and some other tricks.Balderstrom wrote:That and AHK has built in functions for handling/parsing/writing INI files.
However, I did see some Ini <-> Object functions/libraries so I will look into that to see if they are as easy to use as the current XA library I'm using and I might switch.
Here are the functions I use for reading/writing from/to TC's wincmd.ini
Code: Select all
TC_CheckINIRedirect( iniSection, wincmd )
{
if(!wincmd)
EnvGet, wincmd, COMMANDER_INI
iniRead, iniRedirect, %wincmd%, %iniSection%, RedirectSection, %wincmd%
SplitPath, iniRedirect, iniFile, iniPath
if( !iniPath )
SplitPath, wincmd, tmpFile, iniPath
return iniPath "" iniFile
}
TC_iniRead( iniSection, iniKey, wincmd="" )
{
iniFile := TC_CheckINIRedirect( iniSection, wincmd )
IniRead, keyValue, %iniFile%, %iniSection%, %iniKey%, %A_Space%
return keyValue
}
TC_iniWrite( value, iniSection, iniKey, wincmd="" )
{
iniFile := TC_CheckINIRedirect( iniSection, wincmd )
IniWrite, %value%, %iniFile%, %iniSection%, %iniKey%
return
}
Code: Select all
F4MM_iniWrite( value, iniSection, iniKey, iniFile="F4MiniMenu.ini" )
{
IniRead, keyValue, %iniFile%, %iniSection%, %iniKey%, %A_Space%
return keyValue
}
F4MM_iniRead( iniSection, iniKey, iniFile="F4MiniMenu.ini" )
{
IniWrite, %value%, %iniFile%, %iniSection%, %iniKey%
}
F4MM_INIT(iniFile="F4MiniMenu.ini")
{
Global
local configVars:="foo,bar,baz,foz" ; variables under [Config]
local gVarName
Loop, Parse, configVars, `,
{
gVarName:="F4MM_" A_LoopField
%gVarName%:=F4MM_iniRead( "Config", A_LoopField )
}
}
Code: Select all
F4MM_INIT()
F4MM_ShowVars()
return
F4MM_iniReadExample( iniSection, iniKey )
{
random, rand, 1,10
return "example" rand "_" iniKey
}
F4MM_INIT(iniFile="F4MiniMenu.ini")
{
Global
local configVars:="foo,bar,baz,foz" ; variables under [Config]
local gVarName
Loop, Parse, configVars, `,
{
gVarName:="F4MM_" A_LoopField
%gVarName%:=F4MM_iniReadExample( "Config", A_LoopField )
}
}
F4MM_ShowVars()
{
Global
local configVars:="foo,bar,baz,foz" ; variables under [Config]
local tmpV
Loop, Parse, configVars, `,
{
tmpV:="F4MM_" A_LoopField
MsgBox, % tmpV ":: " %tmpV%
}
}
Thanks for the example, and I know there are INI libraries (not using Objects) on the AHK forum as well (which I didn't like) but I still think it is "too much" work compared to these two very simple commands:
XA_Load() and XA_Save().
That is all I need to do and I have ALL my variables available after one command, or the updated variables saved via one command.
But I don't think INI vs XML is an issue suitable/useful for discussion here or that it would impact usability of the script.
Unicode would be the biggest puzzle to solve, the rest is just window dressing
Edit: re ini-object this oINI library seems useful http://www.autohotkey.com/board/topic/71982-library-oini-ini-object/ ... will investigate further.
XA_Load() and XA_Save().
That is all I need to do and I have ALL my variables available after one command, or the updated variables saved via one command.
But I don't think INI vs XML is an issue suitable/useful for discussion here or that it would impact usability of the script.
Unicode would be the biggest puzzle to solve, the rest is just window dressing
Edit: re ini-object this oINI library seems useful http://www.autohotkey.com/board/topic/71982-library-oini-ini-object/ ... will investigate further.
F4MiniMenu (Forum) - Open selected file(s) from TC in defined editor(s) - A (minimalistic) clone of F4Menu
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
Experimental branch with Unicode support for the Drag & Drop function, download the ZIP here https://github.com/hi5/F4MiniMenu/tree/UnicodeDD
Feedback welcome.
Also: Started experimenting with INI config but not satisfied with results yet.
Feedback welcome.
Also: Started experimenting with INI config but not satisfied with results yet.
F4MiniMenu (Forum) - Open selected file(s) from TC in defined editor(s) - A (minimalistic) clone of F4Menu
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
Update v0.5
- remove Unicode branch (wasn't working at all)
- added new Filelist support similar to the %L in button bar/start menu so you can pass on a file with the selected files to a program. Example usages are WinAmp (playlist) and XnView (view selected files in image browser)
More info and download (ZIP file) at https://github.com/hi5/F4MiniMenu
- remove Unicode branch (wasn't working at all)
- added new Filelist support similar to the %L in button bar/start menu so you can pass on a file with the selected files to a program. Example usages are WinAmp (playlist) and XnView (view selected files in image browser)
More info and download (ZIP file) at https://github.com/hi5/F4MiniMenu
F4MiniMenu (Forum) - Open selected file(s) from TC in defined editor(s) - A (minimalistic) clone of F4Menu
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
Update v.06:
- Now works with AHK 1.1+ Unicode as well (drag & drop)
- Fixed listview icon issue
More info and download (ZIP file) at https://github.com/hi5/F4MiniMenu
- Now works with AHK 1.1+ Unicode as well (drag & drop)
- Fixed listview icon issue
More info and download (ZIP file) at https://github.com/hi5/F4MiniMenu
F4MiniMenu (Forum) - Open selected file(s) from TC in defined editor(s) - A (minimalistic) clone of F4Menu
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
Bug command:
"Gui, Browse:Destroy"
F4MiniMenu can't work probably with it in TC 8.50 betas under Win8 x64 Eng
"Gui, Browse:Destroy"
F4MiniMenu can't work probably with it in TC 8.50 betas under Win8 x64 Eng
"I used to feel guilty in Cambridge that I spent all day playing games, while I was supposed to be doing mathematics. Then, when I discovered surreal numbers, I realized that playing games IS math." John Horton Conway
@LonerD: I'm now running Win8.1 64bit Eng with TC 8.50beta7 (64 bit) and I can add, modify and remove editors without any problems. Can you tell me a bit more so I can try replicate the error? When you get the error messages, does it say in which include (settings.ahk or editors.ahk) or line the error occurs (Gui, Browse:Destroy is used in these two includes)
I'm running AHK 64bit (unicode) 1.1.13.01 and F4MiniMenu v0.61.
I'm running AHK 64bit (unicode) 1.1.13.01 and F4MiniMenu v0.61.
F4MiniMenu - v0.8
Added F4 functions to Lister (grabbing the filename from the Window title) and the search results in the Find Files dialog.
Comment: if you use the Esc & Key as Foreground menu option it will fail as pressing Esc will close Lister and the Find Files dialog. The Winkey & Key combination does work - the menu will appear at the top of the window.
Download the ZIP file https://github.com/hi5/F4MiniMenu (simply unpack and run) - don't forget to backup your F4MiniMenu.xml just to be sure.
Added F4 functions to Lister (grabbing the filename from the Window title) and the search results in the Find Files dialog.
Comment: if you use the Esc & Key as Foreground menu option it will fail as pressing Esc will close Lister and the Find Files dialog. The Winkey & Key combination does work - the menu will appear at the top of the window.
Download the ZIP file https://github.com/hi5/F4MiniMenu (simply unpack and run) - don't forget to backup your F4MiniMenu.xml just to be sure.
F4MiniMenu (Forum) - Open selected file(s) from TC in defined editor(s) - A (minimalistic) clone of F4Menu
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)
Source at GitHub (AutoHotkey). TCSyncComments (copy file comments)