Re: ShellExecuteEx with lpVerb = TEXT("properties") needs running app to Display Dialog,...
On Wed, 5 Mar 2008 19:10:50 +0100, "Kerem G?mr?kc?" <kareem114@hotmail.com>
wrote:
Hi,
this code works fine,...but only if your application does not exit,
e.g. if the application, calling this code exits, the properties dialog
also closes. So how can i manage it, to stay "running" until the
dialog closes and then terminate my application,. It is a Windows
Application with no UI and just a _tWinMain and some extra code.
SHELLEXECUTEINFO sei;
sei.cbSize = sizeof(SHELLEXECUTEINFO);
sei.hwnd = NULL;
sei.nShow = SW_SHOW;
sei.fMask = SEE_MASK_INVOKEIDLIST | SEE_MASK_FLAG_DDEWAIT;
sei.lpVerb = TEXT("properties");
sei.lpFile = vip_argv[1];
BOOL __ret = ShellExecuteEx(&sei);
I need some signaling mechanism that the properties dialog has been closed,
or a way to stay "running" until the properties dialog has been closed,...
If there is anther way to do this by e.g. using "rundll32", i would take
it,...
Any ideas,...?
I'm not sure it's possible to solve this problem using ShellExecuteEx. In
the context of a generalized solution to programmatically calling context
menu items, I talked about the early exit problem here (see the parts about
SHGetInstanceExplorer):
http://www.eluent.com/runmenu.htm
My runmenu program deals with the early exit problem by hooking
SHGetInstanceExplorer and implementing a fake COM object for the benefit of
the shell extensions that actually follow the rules and use it. That was
the easy part. Unfortunately, MS and others are rather lax about following
the rules, and that's why the /wait options exist, which meant hooking a
number of other functions and developing heuristics to determine when it's
OK to exit. Anyway, runmenu is free for personal use, and as it happens,
one of my standard DOSKEY macros is:
PROPS=runmenu /verb:properties $*
To view properties when I'm in a shell, I can do this at the command
prompt:
C>props c:\windows\system32\shell32.dll
--
Doug Harrison
Visual C++ MVP