高分就教ShellExecute的问题

Ice1 2005-01-13 09:43:15
1、请问如何取得一个ShellExecute的句柄。


2、我ShellExecute (NULL,"open","iexplore.exe",page,NULL,SW_SHOWNOACTIVATE);发现还是窗口还是在最前面弹出了。不知道怎么回事。
...全文
213 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ice1 2005-01-14
  • 打赏
  • 举报
回复
ding
qrlvls 2005-01-13
  • 打赏
  • 举报
回复
可以使用 CreateProcess 然后取得该进程的主窗口句柄
qrlvls 2005-01-13
  • 打赏
  • 举报
回复
并非所有窗口都可以隐藏
Ice1 2005-01-13
  • 打赏
  • 举报
回复
// 变通办法, 最小化到任务栏:
ShellExecute (NULL,"open","iexplore.exe",page,NULL, SW_MINIMIZE);


这个我也想过了。但是我想关闭以前窗口的时候显示出来。

取不到窗口的句柄,没法显示...........
Atomictry 2005-01-13
  • 打赏
  • 举报
回复
// 变通办法, 最小化到任务栏:
ShellExecute (NULL,"open","iexplore.exe",page,NULL, SW_MINIMIZE);
iamwiner 2005-01-13
  • 打赏
  • 举报
回复
帮你顶一下,要给分啊.^_^
Ice1 2005-01-13
  • 打赏
  • 举报
回复
ding
Ice1 2005-01-13
  • 打赏
  • 举报
回复
laiyiling(陌生人☆VCFANS)给的好象也是隐藏哦

也没有得到ShellExecute返回的窗口句柄。

我想是作的是不影响当前的窗口的。但也显示,不是隐藏。
Ice1 2005-01-13
  • 打赏
  • 举报
回复
想取得ShellExecute返回的窗口句柄。。。。说错了
chuanke 2005-01-13
  • 打赏
  • 举报
回复
楼上的说对了,你可看看
=============================================
深入浅出ShellExecute
译者:徐景周(原作:Nishant S)

Q: 如何打开一个应用程序? ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );
或 ShellExecute(this->m_hWnd,"open","notepad.exe",
"c:\\MyLog.log","",SW_SHOW );
正如您所看到的,我并没有传递程序的完整路径。
Q: 如何打开一个同系统程序相关连的文档? ShellExecute(this->m_hWnd,"open",
"c:\\abc.txt","","",SW_SHOW );
Q: 如何打开一个网页? ShellExecute(this->m_hWnd,"open",
"http://www.google.com","","", SW_SHOW );
Q: 如何激活相关程序,发送EMAIL? ShellExecute(this->m_hWnd,"open",
"mailto:nishinapp@yahoo.com","","", SW_SHOW );
Q: 如何用系统打印机打印文档? ShellExecute(this->m_hWnd,"print",
"c:\\abc.txt","","", SW_HIDE);
Q: 如何用系统查找功能来查找指定文件? ShellExecute(m_hWnd,"find","d:\\nish",
NULL,NULL,SW_SHOW);
Q: 如何启动一个程序,直到它运行结束? SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = "c:\\MyProgram.exe";
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
或: PROCESS_INFORMATION ProcessInfo;
STARTUPINFO StartupInfo; //This is an [in] parameter
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
StartupInfo.cb = sizeof StartupInfo ; //Only compulsory field
if(CreateProcess("c:\\winnt\\notepad.exe", NULL,
NULL,NULL,FALSE,0,NULL,
NULL,&StartupInfo,&ProcessInfo))
{
WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
}
else
{
MessageBox("The process could not be started...");
}

Q: 如何显示文件或文件夹的属性? SHELLEXECUTEINFO ShExecInfo ={0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST ;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = "properties";
ShExecInfo.lpFile = "c:\\"; //can be a file as well
ShExecInfo.lpParameters = "";
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOW;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);

Kudeet 2005-01-13
  • 打赏
  • 举报
回复
1 http://www.vckbase.com/document/viewdoc/?id=416
2
PROCESS_INFORMATION pi;
STARTUPINFO si;
memset(&si,0,sizeof(si));
si.cb=sizeof(si);
si.wShowWindow=SW_HIDE;
si.dwFlags=STARTF_USESHOWWINDOW;
BOOL fRet=CreateProcess(NULL,"notepad.exe",NULL,NULL,FALSE,NULL, NULL,NULL,&si,&pi);
iamwiner 2005-01-13
  • 打赏
  • 举报
回复
那是隐藏老兄,人家要打开但不激活.
auly403 2005-01-13
  • 打赏
  • 举报
回复
SW_SHOWNOACTIVATE 改成SW_HIDE 看看
iamwiner 2005-01-13
  • 打赏
  • 举报
回复
2.可能是IE的问题,我换了个别的程序,就没有被激活.
Kudeet 2005-01-13
  • 打赏
  • 举报
回复
1 ShellExecute本来就返回一个句柄
2 要隐藏用CreateProcess
Ice1 2005-01-13
  • 打赏
  • 举报
回复
取得句柄不可以用FindWindow,因为标题不一样。
Ice1 2005-01-13
  • 打赏
  • 举报
回复
可以使用 CreateProcess 然后取得该进程的主窗口句柄

请问如何取得?我是初学者。谢谢了
goodsmaker 2005-01-13
  • 打赏
  • 举报
回复
我试了,就ie不行,
关注ing

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧