Page 1 of 2
IContextMenu::InvokeCommand in a separate thread
Posted: 01 Sep 2013, 23:35
by crystalidea
When downloading an .exe (some setup of some app) and running it first time, after starting in Salamander (Windows Explorer) Windows verifies the digital signature, and this verification can take up to 10 seconds (before the actual process will start), during which Salamander simply hangs. Is there a way of improving that?
Thanks
Re: CreateProcess in a separate thread
Posted: 07 Sep 2013, 11:51
by xm
+1
I have encountered such long hangs too.
But it usually helps me when I delete the Zone.Identifier ADS of the downloaded exe-file 1st ([ZoneTransfer] ZoneId=3), before I start it.
Re: CreateProcess in a separate thread
Posted: 14 Sep 2013, 20:26
by Ether
Yeah, this is especially noticeable with large files (> ~20 MB).
I believe it's not CreateProcess, but ShellExecute(Ex).
Similar, maybe related, slow-downs:
- when an icon is being read from the file
- when the file is being checked by an anti-virus
- when opening a file in WMP for the first time -- the configuration wizard blocks Salamander
- when the opened application requests elevation
Re: CreateProcess in a separate thread
Posted: 15 Sep 2013, 22:07
by crystalidea
Salamander uses CreateProcess
ShellExecute uses CreateProcess as well
Re: CreateProcess in a separate thread
Posted: 15 Sep 2013, 22:55
by Jan Rysavy
Salamander is using IContextMenu::InvokeCommand method with default context menu item (for executed file).
Re: CreateProcess in a separate thread
Posted: 16 Sep 2013, 16:08
by crystalidea
thanks for the info, anyway, what about this improvement?
Re: CreateProcess in a separate thread
Posted: 16 Sep 2013, 16:52
by Jan Rysavy
It is interesting idea...
Re: CreateProcess in a separate thread
Posted: 17 Sep 2013, 10:31
by crystalidea
Sure, all my ideas are worth their weight in gold

Re: CreateProcess in a separate thread
Posted: 04 Oct 2013, 11:57
by crystalidea
Sometimes it really hangs for 10 seconds, just counted
Re: CreateProcess in a separate thread
Posted: 05 Dec 2013, 13:15
by crystalidea
itunes64setup.exe is a good example of very long delay
Re: CreateProcess in a separate thread
Posted: 01 May 2014, 15:53
by crystalidea
Please, please, please fix this annoying bug.
Re: CreateProcess in a separate thread
Posted: 01 May 2014, 17:00
by Jan Rysavy
Isn't it possible to disable this feature in Windows settings?
Running context menu invoke in different thread is not simple with existing Salamander open handler. Actually it is nearly impossible.
Re: CreateProcess in a separate thread
Posted: 02 May 2014, 10:22
by crystalidea
I don't want to disable digital signature checking (and doubt it's really possible).
Ok, then why not to run IContextMenu::InvokeCommand in a separate (non UI) thread?
Re: CreateProcess in a separate thread
Posted: 02 May 2014, 10:34
by Jan Rysavy
As I said before, it is not easy with open handler we have.
We can consider it if there will be more requests.
Re: CreateProcess in a separate thread
Posted: 05 May 2014, 19:25
by crystalidea
there won't be any more request for that, most Windows users get used to such crazy things in Windows Explorer.
I do think it's an important usability improvement, threads are our friends
