描述:
STDMETHODIMP CNINEONE::Run(BSTR strUserName, BSTR strPasswd, unsigned char *iSuccess)
{
char *a = "C:\\WINNT\\NOTEPAD.EXE";
if(::ShellExecute( GetDesktopWindow(), "open",a, NULL, NULL, SW_SHOWMAXIMIZED) > HANDLE(32) )
{
*iSuccess = 1 ;
}
else
{
*iSuccess = 0;
}
return S_OK;
}
这个为什么可以启动.在任务栏中可以看到些进程.但是不会显示出来?而且也杀不死该进程.
这些问题与dllhost有关吗?
请大家帮忙~
解决方案1:
if(::ShellExecute( GetDesktopWindow(), "open",a, NULL, NULL, SW_SHOWMAXIMIZED) > HANDLE(32) )
这一行有问题的
目录参数不能少的
if(::ShellExecute( GetDesktopWindow(), "open","C:\\WINNT\\NOTEPAD.EXE",NULL , "C:\\WINNT\\", SW_SHOWMAXIMIZED) > HANDLE(32) )
这当然可以启动了,至于显示不出来应该是你没有选支持mfc,所以其接收不到相应的消息,也就不能发相应的WM_DESTROY给它了!