社区
C++ 语言
帖子详情
ShellExecute,ShellExecuteEx启动IE的问题
夭夭
2004-04-22 11:14:10
使用这二个API启动IE时,如何传入参数,使IE启动后调用的网页上没地址栏,工具栏等.
...全文
243
7
打赏
收藏
ShellExecute,ShellExecuteEx启动IE的问题
使用这二个API启动IE时,如何传入参数,使IE启动后调用的网页上没地址栏,工具栏等.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oyd
2004-04-22
打赏
举报
回复
BOOL CALLBACK MyEnumProc(HWND hWnd, LPARAM lParam)//EnumWindow的回调函数
{
DWORD dwProcessId;
LPTSTR classname=new char[64];
GetWindowThreadProcessId(hWnd, &dwProcessId);
GetClassName(hWnd,classname,64);
LPWNDINFO pInfo = (LPWNDINFO)lParam;
if(dwProcessId == pInfo->dwProcessId &&strcmp(classname,"IEFrame")==0)
{
pInfo->hWnd = hWnd;
return FALSE;
}
return TRUE;
}
HWND GetProcessMainWnd(DWORD dwProcessId)//得到进程对应的主窗口句柄
{
WNDINFO wi;
wi.dwProcessId = dwProcessId;
wi.hWnd = NULL;
EnumWindows(MyEnumProc,(LPARAM)&wi);
return wi.hWnd;
}
BOOL CALLBACK EnumChildProc(HWND hwndChild, LPARAM lParam)//EnumChildWindow的回调函数
{
LPTSTR classname=new char[64];
LPTSTR classname2=new char[64];
LPCHILDWNDINFO lpinfo=(LPCHILDWNDINFO)lParam;
GetClassName(hwndChild,classname,64);
GetClassName(GetParent(hwndChild),classname2,64);
if(strcmp(classname,(char*)lpinfo->clsname)==0&&strcmp(classname2,"ComboBoxEx32")!=0)
{
lpinfo->hWndChild=hwndChild;
delete []classname;
delete []classname2;
return FALSE;
}
return TRUE;
}
//隐藏ie工具栏示范代码如下
STARTUPINFO StartupInfo;
memset(&StartupInfo,0,sizeof(STARTUPINFO));//初始化startupinfo
StartupInfo.cb=sizeof(STARTUPINFO);
StartupInfo.wShowWindow=SW_MINIMIZE;
StartupInfo.dwFlags=STARTF_USESHOWWINDOW;
PROCESS_INFORMATION ProcessInformation;
char *program="J:\\Program Files\\Internet Explorer\\iexplore.exe";
char *command="\"j:\\Program Files\\Internet Explorer\\iexplore.exe\" http://www.sohu.com/";
//创建进程
int ret=CreateProcess(NULL,command,NULL,NULL,
TRUE,0,NULL,NULL,
&StartupInfo,&ProcessInformation);
//Sleep(2500);
//枚举子窗口
totry:
HWND hwnd=GetProcessMainWnd(ProcessInformation.dwProcessId);
if(!hwnd)
{
Sleep(500);
goto totry;
}
CHILDWNDINFO ci;
ci.clsname="WorkerW";
EnumChildWindows(hwnd, EnumChildProc,
(LPARAM)&ci);
ci.clsname="ReBarWindow32";
EnumChildWindows(ci.hWndChild, EnumChildProc,
(LPARAM)&ci);
ci.clsname="ToolbarWindow32";
EnumChildWindows(ci.hWndChild, EnumChildProc,
(LPARAM)&ci);
PostMessage(ci.hWndChild,WM_CLOSE,0,0);
ShowWindow(hwnd,SW_RESTORE);
很久以前写的代码了,不知道还能不能用,没有试
babam
2004-04-22
打赏
举报
回复
h1982(血精灵) 他说得对
freefalcon
2004-04-22
打赏
举报
回复
与oyd类似的方法为:
创建窗口后,通过FindWindow()找到刚才的窗口,然后再通过GetDescendantWindow(AFX_IDW_TOOLBAR)等获得工具栏,然后隐藏它,destroy显得比较粗暴
另外,不知楼主这样做的目的是什么
如果只是打开一个网页,而这个网页的代码你可以控制的话,完全可以在网页里通过脚本控制
夭夭
2004-04-22
打赏
举报
回复
晕倒,没有个好一点的法子.
oyd(cplusplus) (MVP)你的代码能看看不?
yjh1982
2004-04-22
打赏
举报
回复
我想是不行的...不如自己用CHtmlView显示?
oyd
2004-04-22
打赏
举报
回复
目前ie没有命令行参数负责这个的。
你可以试试两种途径:
1。用ie的COM接口
2。用CreateProcess后,再枚举子窗口,通过类名等到hwnd,然后向它发送destroy消息,就可以把地址栏,工具栏关掉了。
第一种方法我没试过,别人告诉我的
第二种方法我试过,保证有效。
夭夭
2004-04-22
打赏
举报
回复
fd
日常工作
问题
总结(三十二)
shellExecute
、
shellExecute
Ex、WinExec、CreateProcess的区别
shellExecute
,
shellExecute
Ex,WinExec,CreateProcess这几个函数有
API函数
ShellExecute
与
ShellExecute
Ex用法
ShellExecute
: 1.函数功能:你可以给它任何文件的名字,它都能识别出来并打开它。2.函数原型: HINSTANCE
ShellExecute
( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, ...
vc中
ShellExecute
的使用(调用外部程序)
有三个API函数可以运行可执行文件WinExec、
ShellExecute
和CreateProcess。CreateProcess因为使用复杂,比较少用。 WinExec主要运行EXE文件。如:WinExec(’Notepad.exe Readme.txt’, SW_SHOW); ...
ShellExecute
详解
有三个API函数可以运行可执行文件WinExec、
ShellExecute
和CreateProcess。 1.CreateProcess因为使用复杂,比较少用。 2.WinExec主要运行EXE文件。如:WinExec(’Notepad.exe Readme.txt’, SW_SHOW); 3....
深入浅出
ShellExecute
(总结)
有三个API函数可以运行可执行文件WinExec、
ShellExecute
和CreateProcess。1.CreateProcess因为使用复杂,比较少用。2.WinExec主要运行EXE文件。如:WinExec(’Notepad.exeReadme.txt’,SW_SHOW);3.
ShellExecute
不仅...
C++ 语言
64,685
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章