通过其他程序的Internet Explorer_Server句柄打开网页

CoInitialize(NULL);
 
 IWebBrowser2* pWebBrowser2=NULL;
 HRESULT hr;


 // Explicitly load MSAA so we know if it's installed
 HINSTANCE hInst = ::LoadLibrary( _T("OLEACC.DLL") );
 if ( hInst )
 {
  LRESULT lRes;
  UINT nMsg = ::RegisterWindowMessage( _T("WM_HTML_GETOBJECT") );
  ::SendMessageTimeout( hWnd, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&lRes );
  
  LPFNOBJECTFROMLRESULT pfObjectFromLresult = (LPFNOBJECTFROMLRESULT)::GetProcAddress( hInst, _T("ObjectFromLresult") );
  if (pfObjectFromLresult)
  {
   CComPtr<IServiceProvider> spServiceProv;
   hr = (*pfObjectFromLresult)( lRes, IID_IServiceProvider, 0, (void**)&spServiceProv );
   if ( SUCCEEDED(hr) )
   {
    hr = spServiceProv->QueryService(SID_SWebBrowserApp,IID_IWebBrowser2,(void**)&pWebBrowser2);


    if ( SUCCEEDED(hr) )
{


COleVariant vaUrl(url);
_variant_t v1, v2, v3, v4;
v1.vt = VT_NULL;
v2.vt = VT_NULL;
v3.vt = VT_NULL;
v4.vt = VT_NULL;
pWebBrowser2->Navigate2(&vaUrl, &v1, &v2, &v3, &v4);
}
MessageBox("laiguo");
   } // else document not ready
  } // else Internet Explorer is not running
  ::FreeLibrary( hInst );
 } // else Active Accessibility is not installed
 
 CoUninitialize();
 
 //return SUCCEEDED(hr) ? pWebBrowser2 : NULL;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Qt中,可以使用QProcess类来打开外部程序。QProcess类提供了一种启动外部程序的简单方式,并且还可以通过捕获程序的输出、错误信息以及监视程序的运行状态。 要打开外部程序,首先需要创建一个QProcess对象,并使用其start()方法来启动程序。可以将外部程序的路径作为start()方法的参数。启动成功后,可以使用waitForStarted()方法来检查程序是否已经成功启动。 要通过句操作外部窗口,可以使用QWindow类提供的功能。首先,需要获取外部窗口的句,可以使用QProcess对象的processId()方法获取到正在运行程序的进程ID。然后,可以使用QWindow::fromWinId()静态函数将句转换为QWindow对象。 一旦获取了外部窗口的QWindow对象,就可以使用它提供的方法来操作窗口,比如调整窗口的大小、移动窗口的位置、最小化或最大化窗口等。例如,可以使用setWidth()和setHeight()方法来设置窗口的宽度和高度,使用setX()和setY()方法来设置窗口的位置等。 需要注意的是,操作外部窗口的能力可能会受到操作系统的限制,比如需要以管理员身份运行应用程序才能操作某些窗口。在使用QProcess打开外部程序并操作外部窗口时,需要确保对操作系统资源的访问权限。 综上所述,通过QProcess打开外部程序并通过句操作外部窗口的步骤包括:创建QProcess对象,使用start()方法打开外部程序,使用processId()方法获取程序的进程ID,使用fromWinId()方法将进程ID转换为QWindow对象,调用QWindow提供的方法操作窗口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值