FavMenu 2.0

Discuss and announce Total Commander plugins, addons and other useful tools here, both their usage and their development.

Moderators: white, Hacker, petermad, Stefan2

Post Reply
User avatar
fenix_productions
Power Member
Power Member
Posts: 1979
Joined: 2005-08-07, 13:23 UTC
Location: Poland
Contact:

Post by *fenix_productions »

@majkinetor !

How many PC's infected?
"When we created the poke, we thought it would be cool to have a feature without any specific purpose." Facebook...

#128099
User avatar
majkinetor !
Power Member
Power Member
Posts: 1580
Joined: 2006-01-18, 07:56 UTC
Contact:

Post by *majkinetor ! »

Who knows. Hopefully, every single one of them.

Editor.ahk is more notrious variation, it isn't yet discovered but the world is going to know, soon.
Habemus majkam!
User avatar
fenix_productions
Power Member
Power Member
Posts: 1979
Joined: 2005-08-07, 13:23 UTC
Location: Poland
Contact:

Post by *fenix_productions »

Being serious: I think that the reason is UPX usage. I've just tried to compile something from AHK and got the same warining.
"When we created the poke, we thought it would be cool to have a feature without any specific purpose." Facebook...

#128099
User avatar
majkinetor !
Power Member
Power Member
Posts: 1580
Joined: 2006-01-18, 07:56 UTC
Contact:

Post by *majkinetor ! »

Most definitely.
No other thing can be the case, except if parts of the AHK code itself are recognised as a trojan. That can be checked with .bin file that is included into exe by ahk2exe. After that file is UPXed, so the problem is either here or there :)

Anyway, when time for final ver of FM3 comes (I suppose you tried with FM2) it will not come with exe files at all, except hidden AutoHotKey exe that will execute ahk script.
Habemus majkam!
User avatar
majkinetor !
Power Member
Power Member
Posts: 1580
Joined: 2006-01-18, 07:56 UTC
Contact:

Post by *majkinetor ! »

Habemus majkam!
User avatar
fenix_productions
Power Member
Power Member
Posts: 1979
Joined: 2005-08-07, 13:23 UTC
Location: Poland
Contact:

Post by *fenix_productions »

I see...
Btw. I am waiting for someone to write learn-able IntelliSense for whole Windows (or just Miranda) ;)
"When we created the poke, we thought it would be cool to have a feature without any specific purpose." Facebook...

#128099
User avatar
majkinetor !
Power Member
Power Member
Posts: 1580
Joined: 2006-01-18, 07:56 UTC
Contact:

Post by *majkinetor ! »

Btw. I am waiting for someone to write learn-able IntelliSense for whole Windows (or just Miranda)
ISense that I created works for whole Windows, but just 1 langauge currently - AHK. You can use it with Miranda if you want to write AHK code. The plan is to update this so to be language independent. I already started doing so, but I don't know if I will finish it, nor when. I didn' find out yet how to support the largest set of languages possible as they all have different gramatics.

BTW, you are student of informatics, sounds like you could do it ;)
Or you are too ocupied picturing yourself in horror scenarios ?
Habemus majkam!
User avatar
fenix_productions
Power Member
Power Member
Posts: 1979
Joined: 2005-08-07, 13:23 UTC
Location: Poland
Contact:

Post by *fenix_productions »

I am not a student now. My www is pretty old if you assumed it (and horror scenarios) from there.

I wish I have more time, but even if I have few holidays now, it's hard to find free time. I was trying to update my personal site few times but always had something more important. Being adult... eeeh ;)

P.S. I am the guy in that coffin.
"When we created the poke, we thought it would be cool to have a feature without any specific purpose." Facebook...

#128099
User avatar
majkinetor !
Power Member
Power Member
Posts: 1580
Joined: 2006-01-18, 07:56 UTC
Contact:

Post by *majkinetor ! »

P.S. I am the guy in that coffin
It shows. The dead man looks like ex computer science student :D

Well... I can just repeat things about missing time, being adult etc...

BTW, for what do you need IntelliSense in Miranda ?
Habemus majkam!
User avatar
fenix_productions
Power Member
Power Member
Posts: 1979
Joined: 2005-08-07, 13:23 UTC
Location: Poland
Contact:

Post by *fenix_productions »

Because I've realized that (instead of real speak) the most of words I use in it, have been used previously. So it could help write messages quicker if I have it in it.
It could be nice to read suggested words from some file.txt and learn that if some word has been written e.g. 3 times than is added to this file.
All about time saving.
"When we created the poke, we thought it would be cool to have a feature without any specific purpose." Facebook...

#128099
User avatar
majkinetor !
Power Member
Power Member
Posts: 1580
Joined: 2006-01-18, 07:56 UTC
Contact:

Post by *majkinetor ! »

Yeah, ISense works like that. No learning, but you can select word you would like to add and press a hotkey then it is there.

The problem is that it is used to write source code, so user words and functions are reerenced in first line of the source file, like:

//ISense USER= <path>Project1.isense.txt


This can not be added this way in Miranda, but something similar is possible.


Well... there are some sw around that do that, but they are all using eng If I recall...
Habemus majkam!
User avatar
fenix_productions
Power Member
Power Member
Posts: 1979
Joined: 2005-08-07, 13:23 UTC
Location: Poland
Contact:

Post by *fenix_productions »

Yes, there are neither free nor polish friendly (iso88592/win1250/unicode).
"When we created the poke, we thought it would be cool to have a feature without any specific purpose." Facebook...

#128099
zett42
Junior Member
Junior Member
Posts: 9
Joined: 2007-05-01, 13:48 UTC
Contact:

Post by *zett42 »

2majkinetor ! I played around with your FavMenu and liked the idea to invoke the thing with shortcuts. Though I'm a more mouse-centric guy ;)

I'm curious about how you set the MS Office file dialog to a specific directory?
The solution for my tool FlashFolder is to simulate mouse click and then keystrokes to enter the path into the edit control of this thing since I couldn't find a more direct API like for the common open/save dialog.

I found a bug (propably already mentioned) if FavMenu is used in the "browse for folder" dialog: it doesn't handle virtual folders like "my files" correctly. I would expect it to add the physical file path to the menu but instead it only adds the displayed name.
I have the same problem with FlashFolder so it would be nice to exchange a possible solution to this issue.
User avatar
majkinetor !
Power Member
Power Member
Posts: 1580
Joined: 2006-01-18, 07:56 UTC
Contact:

Post by *majkinetor ! »

Hello zett42 and welcome.

First, I don't know which version did you use. Currently v3 can be downloaded only using links provided on this forum, several pages back. Or take it here
I'm curious about how you set the MS Office file dialog to a specific directory?
Isn't Favmenu open source :D ?
Though I'm a more mouse-centric guy
Good developer should supprot mouse and kyboard equaly. I usualy use keyboard, but always have full support for mouse. Any feature that you can do with keybaord, can be done with mouse only.
The solution for my tool FlashFolder is to simulate mouse click and then keystrokes to enter the path into the edit control of this thing since I couldn't find a more direct API like for the common open/save dialog.
Office dialogs are a little bit buggy when automatition is in question. What is going on whithin dialog somehow depend on what has the focus. So, you must first move the focus to the edit control, then paste the text.
This is the procedure:

Code: Select all

FavMenu_DialogSetPath_OS(path)
{
	global 
	local d_text, d_f
	
	WinWaitActive ahk_id %FavMenu_dlgHWND%

	ControlGetFocus d_f, ahk_id %FavMenu_dlgHWND%
	ControlFocus, , ahk_id %FavMenu_dlgInput%

	ControlGetText d_text, ,ahk_id %FavMenu_dlgInput%
	ControlSetText, , %path%, ahk_id %FavMenu_dlgInput%
	ControlSend, ,{ENTER}, ahk_id %FavMenu_dlgInput%
	
	Sleep 20
	ControlSetText, ,%d_text%, ahk_id %FavMenu_dlgInput%
	if (FavMenu_dlgType = "Office03")
		ControlFocus %d_f%, ahk_id %FavMenu_dlgHWND%
}
As you see, I use the same procedure as with normal OS, just don't return the focus afterwards as this is buggy. I also didn't use standard API to set folder as like this it works with standard and with Office dialogs 2003/2007 in same shot.
I found a bug (propably already mentioned) if FavMenu is used in the "browse for folder" dialog: it doesn't handle virtual folders like "my files" correctly.
FM3 is not made for virtual folders. Although there might be some update for this in feuture I don't think its necessary. Anyway, you can add vir volder in FM3 directly via Editor. Just Add Current Dir doesn't handle vir folders.

You can even make same vir dirs accessible in all dialogs, Explorer and TC together via single menu item (using CLSID) or you can set it work only in TC (using cm_...)

I have the same problem with FlashFolder so it would be nice to exchange a possible solution to this issue.
Some old versions of FM2 handled this, but I removed as solution wasn't very sophisticated, nevertheless it worked. I was opening buffers in remote process to get control of the TreeView (you have this implicitely as you use hook). Then I was taking the text of the selected item, comparing it to the text in registry for shell folders (as Desktop is different on Russian and English...) then I got clsid of vir folder.

BUT, there is easy solution. You can get PIDL of selected item directly. I didn't know that back in time.


As you are using hooks, this makes your situation extremely easy. U can use COM to control all shell windows the same way (OpenSave, BFF, Exploer, whatever).

I have example in AHK code, its name is ShellDriver. You can quiry, set, get or do anything via COM. As there is no way I can get pointers to 3th party shell control out of process space (even with remote buffers) I didn't manage to use it in FM3 (well, FM3 works superb like it is now, in alpha release 14)

------------------------

I will soon change FM3 so plugins are supported. So, you will have little window recorder and once you record the window it will be recognised by FM3. You will be able to set what control receives input, if to send enter after it or no, etc... Then you can add whatever you like in FM3 - Any propiatery GUI having ability to change folder. Several ppl besides me already created mods of FM3 to support some other APPs having funny windows dealing with File System. For instance, there is support for Cygwin console and Fruity Loops studio browser. PPL tweaked FM3 functions so I will change this in feature so anybody can add any window without coding anything.

I planned to move whole thing in C, but I letter decided to just do hook in C that will put button on top (similar to your case) and to be able to set the size of open save.

FM3 as of AHK limitation can't use hooks so it is litteraly idle when you dont' use it, and it is not inserted in any process around. I planned to do hook in RoseAsm, which will create hook dll of size ~ 3,4 KB.

However AHK allows some very kewl things for future version of FM3.First of all, its interpretaded, so anybody knowing AHK can change FM3 like he fits. Code will be fully documented soon for that. More important, you can write little scripts and connect them to menu items. Those scripts can do anything you can do in AHK, so this basicly creates macro facility in FM3. For instance, the one can collapse all windows or move to another desktop or even take current temperature from the Web and convert it to Celsious and display it by using FM3 menu item, without starting 3th party programs and using just several lines of code (yeah, AHK is powerful). Also, FM3 allows anybody with different file manager to quickly create plugin for it, so to have the same ability as currently with TC and Explorer (I created just those 2 plugs as I don't use other File Managers)

If you are interested we can settle some things together in new project that would be state of the art thing, i just didn't find time to do it alone. I also remember VadiMGP is interested for this topic, so maybe 3 of us can make things shine.

One of the things I am interested is creating entirely new menu control that will be able to pin menu whenever you want. This is available in BlackBox shell for windows and this is fantasticaly useful. If you have deeper hierarchy of nested menu folders (usualy with start menu) you can pin any of them so it stays on the screen until you release him. So, if you for some reason need to use SoundREcorder a lot this day, you can pin Start->Accessories->Entertainment on the screen instead having to iterate to the item every time. The side effect is that you will be able to set favorite menu pinned on startup so this basicly makes shell out of it, but this shell understand your system good, and your file managers good.

And so on... ideas are never low here, just time.
Habemus majkam!
zett42
Junior Member
Junior Member
Posts: 9
Joined: 2007-05-01, 13:48 UTC
Contact:

Post by *zett42 »

2majkinetor !
BUT, there is easy solution. You can get PIDL of selected item directly.
How? I only know about a message to set the currently selected folder, but none to get it.
U can use COM to control all shell windows the same way
But the difficulty is to get a COM interface object first. Common file dialog provides WM_GETISHELLBROWSER, but I don't know about such message for the common folder dialog...
Post Reply