如何启动ie,让其成为主控程序的子进程。。。 同题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ShellExecute(0,"open","http://...............com",0,0,1);HINSTANCE ShellExecute(HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR lpDirectory,INT nShowCmd); 其调用参数的含义如下: hwnd:指明打开文件的窗口句柄。 lpOperation:指明操作类型,分别是“open”(打开)、“print”(打印)、“explore”(浏览)。 lpFile:欲打开文件的文件名。这里应该将文件的含义向更深层次理解。文件可以是本地文件,也可以是远程文件;文件的类型可以是文本文件,也可以是多媒体文件。 lpParameters:打开文件时所传递的参数。特别适合打开EXE文件。 lpDirectory:文件所在路径。 nShowCmd:打开文件时窗口的状态。0表示隐藏,1表示最大化,2表示最小化。 如果该函数能够成功打开文件,则该函数的返回值大于32 CreateProcess(), IE的文件名是iexplore.exe winexec, shellexecute,createprocess都可以 WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数值得说一下,比如泥用 SW_SHOWMAXMIZED方式去加栽一个无最大化按钮的 程序,呵呵就是Neterm,calc等等,就不会出现正常的 窗体,但是已经被加到任务列表里了。ShellExecute较 WinExex灵活一点,可以指定工作目录CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等.来看个很简单的 Example: STARTUPINFO stinfo; //启动窗口的信息 PROCESSINFO procinfo; //进程的信息 CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE, NORMAL_PRIORITY_ CLASS,NULL,NULL, &stinfo,&procinfo); 要成为子进程并对其控制,只有用createprocess tangshiping(苇舞) 兄弟:你好像对api很熟悉,可以发份你手头的api资料吗?我收集了一些api查询工具,可是都不好用,因为他们都没对api做功能分类。我的email是[email protected] 是这样的,我自己写了个程序想在ie现实区域内画一些矢量图,目前打算用图元来实现,可是发现在ie中我无法改变鼠标的模样,查询了几个改变鼠标状态的api,如:setsursor,setclasslong等等都无法控制另一进程中鼠标的样子,所以我才想如果用自己写的程序去启动ie,让它成为我程序的子进程,或许可以控制鼠标的样子。不知道我想法对否??? killer1978(水手) :我也没有api的好资料,有的都是按拼音排顺序的。很少看,知道的都是平时自己积累的。你为什么一定要在ie内做这个工作呢?用个文档不可以吗?我很少做这方面的东西,给你推荐“何志丹”,他对这个很熟悉。 何志丹是哪位高手,如何联系?我准备写个基于ie的电子白板,boss不允许我做独立的客户端把ie嵌在自己写的窗口里,我只好出下策,写个程序调用gdi函数在用户打开的ie里画图。 各个斑竹对gdi好象也都是高手,你不妨请斑竹出现下,呵呵 tangshiping(苇舞):如何请斑竹出现呢?tangshiping(苇舞)对我发的帖子反应迅速,本人佩服,你如何做到的,是csdn给你发了短消息吗 http://blog.joycode.com/jiangsheng/posts/14110.aspx加速浏览器控件的创建 我们知道,应用程序中浏览器控件的第一个实例的创建过程比其他的实例创建过程慢得多。为了加速浏览器控件的创建,在应用程序的开始,可以创建一个隐藏的浏览器对象,使得应用程序中随时都至少有一个浏览器控件的实例在主窗口类中声明 CComPtr<IOleObject> m_spOleObjectPreloadBrowser;在主窗口类的初始化函数中 HRESULT hr = CoCreateInstance(CLSID_WebBrowser, NULL, CLSCTX_INPROC, IID_IOleObject, (void**)&m_spOleObjectPreloadBrowser); if (FAILED(hr)){ TRACE(_T("Can not create WebBrowser\r\n")); return FALSE; } CComQIPtr<IWebBrowser2> pWebBrowser(m_spOleObjectPreloadBrowser); if(pWebBrowser){ CComBSTR bstrURL = _T("about:blank"); COleSafeArray vPostData; pWebBrowser->Navigate(bstrURL, COleVariant((long) 0, VT_I4), COleVariant(_T(""), VT_BSTR), vPostData, COleVariant(_T(""), VT_BSTR)); }然后在退出时释放 m_spOleObjectPreloadBrowser=NULL;这样可以大大加快程序中浏览器控件的创建速度。因为IE的动态库都是共享的,所以除了第一个示例之外,多开一个实例多占用的内存并不大。QQ的广告窗口明显就没有用这个方法来加速……打开的时候慢得要死…… 默认创建的浏览器是隐藏的,要调用IWebBrowser2::put_Visible来使其可见 killer1978(水手) :我的技术社区-》我参与的问题我只不过一会就f5后看看。呵呵 CFrameWnd类对象怎么能调用m_hMenu呢??? 发现我很少在这个版块散分 在对话框程序里面有没有什么办法实现动态画图,就像window资源管理器的CPU使用记录那样 求助:如何画出数据结构中的有向图 把函数名作为参数传递给另一个函数时出现的错误 选择路径的控件是什么? 求类似画图程序的例程源码. gcnew的释放问题 按钮上怎么设置位图? 为什么我的数据拖放无法实现,代码没有错吧?帮忙看看了! 如何解析ftp list命令返回的目录列表? 关于FTP
HINSTANCE ShellExecute(HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR lpDirectory,INT nShowCmd);
其调用参数的含义如下:
hwnd:指明打开文件的窗口句柄。
lpOperation:指明操作类型,分别是“open”(打开)、“print”(打印)、“explore”(浏览)。
lpFile:欲打开文件的文件名。这里应该将文件的含义向更深层次理解。文件可以是本地文件,也可以是远程文件;文件的类型可以是文本文件,也可以是多媒体文件。
lpParameters:打开文件时所传递的参数。特别适合打开EXE文件。
lpDirectory:文件所在路径。
nShowCmd:打开文件时窗口的状态。0表示隐藏,1表示最大化,2表示最小化。
如果该函数能够成功打开文件,则该函数的返回值大于32
ShellExecute较 WinExex灵活一点,可以指定工作目录CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等.来看个很简单的 Example: STARTUPINFO stinfo; //启动窗口的信息 PROCESSINFO procinfo; //进程的信息 CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE, NORMAL_PRIORITY_ CLASS,NULL,NULL, &stinfo,&procinfo);
你好像对api很熟悉,可以发份你手头的api资料吗?我收集了一些api查询工具,可是都不好用,因为他们都没对api做功能分类。我的email是[email protected]
不知道我想法对否???
我也没有api的好资料,有的都是按拼音排顺序的。很少看,知道的都是平时自己积累的。
你为什么一定要在ie内做这个工作呢?用个文档不可以吗?我很少做这方面的东西,给你推荐“何志丹”,他对这个很熟悉。
我准备写个基于ie的电子白板,boss不允许我做独立的客户端把ie嵌在自己写的窗口里,我只好出下策,写个程序调用gdi函数在用户打开的ie里画图。
如何请斑竹出现呢?tangshiping(苇舞)对我发的帖子反应迅速,本人佩服,你如何做到的,是csdn给你发了短消息吗
加速浏览器控件的创建
我们知道,应用程序中浏览器控件的第一个实例的创建过程比其他的实例创建过程慢得多。为了加速浏览器控件的创建,在应用程序的开始,可以创建一个隐藏的浏览器对象,使得应用程序中随时都至少有一个浏览器控件的实例在主窗口类中声明 CComPtr<IOleObject> m_spOleObjectPreloadBrowser;
在主窗口类的初始化函数中 HRESULT hr = CoCreateInstance(CLSID_WebBrowser, NULL, CLSCTX_INPROC,
IID_IOleObject, (void**)&m_spOleObjectPreloadBrowser);
if (FAILED(hr)){
TRACE(_T("Can not create WebBrowser\r\n"));
return FALSE;
}
CComQIPtr<IWebBrowser2> pWebBrowser(m_spOleObjectPreloadBrowser);
if(pWebBrowser){
CComBSTR bstrURL = _T("about:blank");
COleSafeArray vPostData;
pWebBrowser->Navigate(bstrURL,
COleVariant((long) 0, VT_I4),
COleVariant(_T(""), VT_BSTR),
vPostData,
COleVariant(_T(""), VT_BSTR));
}
然后在退出时释放 m_spOleObjectPreloadBrowser=NULL;这样可以大大加快程序中浏览器控件的创建速度。因为IE的动态库都是共享的,所以除了第一个示例之外,多开一个实例多占用的内存并不大。QQ的广告窗口明显就没有用这个方法来加速……打开的时候慢得要死……
我的技术社区-》我参与的问题
我只不过一会就f5后看看。呵呵