关于默认浏览器的设置,向高手求救默认浏览器的问题
比如:
我打开QQ,点击空间或邮箱,这时会用默认浏览器打开
无论是IE,或是遨游,都会正确打开想请教一下,这个地址是通过什么方式传递给默认浏览器的我自己是这样实验的:
做了个chtmlview的最最简单的浏览器
在APP中加入一个字符串变量,传入cmdInfo.m_strFileName变量
在测试,播放建设银行的U盾(会自动弹出一个IE登陆窗口,把IE改了名,用我自己的浏览器改为IEXPLORE.exe)
这时弹出的登陆界面很正常
但,问题是QQ空间等都打不开,我不清楚原因在哪里然后,我又以同样的方法试了maxthon和360浏览器,他们都很可以正常打开QQ邮箱和空间,并且插入U盾时也能正常打开页面,我下载了MyIE老版本的源码,同样也是打不开。
从上午到现在我试了很多方法,自己实在没法解决,恳请老大耐心指点一下,能给个源码参照一下最好了,实在不胜感谢PS:为这事,明后天还要来加班,还拖着几个人陪我一起加班,真有点过意不去,无奈自己水平太菜 sigh~~

解决方案 »

  1.   

    自己看看这个老帖子
    http://topic.csdn.net/u/20080123/12/e099929a-49ef-454a-b73f-4e69047dfe07.html
    里面有方法
      

  2.   

    建议以后问题  先Google  在问问题  还有  建议少用百度 
      

  3.   

    哦  我看明白了  
    接收参数的问题  你可以去pudn搜索一下  如何在程序中打开一个页面 POST数据   
    这个是IE自动化的问题  我早上刚下了一段代码  不过在公司的机器上...
    你找找关于IE自动化的技术文章  里面应该有 
    真巧  早上经理就是出了这个问题给我的...
      

  4.   

    ShellExecute(..., "open", "http://www.google.com", ...);
    这就是用默认浏览器打开谷歌。
      

  5.   

    程序里。
    GetCommandLine得到参数。
      

  6.   

    通信方式吗?早期是用DDE来传递数据给另一个进程,现在都是用OLE来传递,当然为了兼容性考虑DDE还继续被支持。不过应用程序就不要去想它们的细节了,这是SHELL内部做的工作。
      

  7.   

    在你的程序里接受cmdline,
    然后分析这个参数,如果有地址,则程序浏览网页即可.
      

  8.   

    谢谢了,要是今天搞不定,就得全加班了,周一就要给人家测试了,周一发现问题时,头头说没关系,周四下午又说要解决搞得我也很被动谢谢,只是我查了半小时GetCommandLine用法,现在还不清楚具体怎么用
      

  9.   

    我在6L的建议下,用了这样一句AfxMessageBox(GetCommandLine());但还是不行,弹出为空请问你的cmdline是什么?如何获取值勤呢?
      

  10.   

    干嘛用GetCommandLine,太挫了,用CWinApp::m_lpCmdLine,直接拿过来用
      

  11.   

    看了4L建议,查询了一下文章,觉得这里面并不是简单传递参数那么简单
    需要用到COM技术,需要用到DWebBrowserEvents2事件
    我对COM算是一点不会
    看到这些,,,我的心就一直一直慢慢地沉下去。
      

  12.   

    这话倒是真理,现在关键是时间,,,不等人呀现在我只想找到代码,把这个问题解决,COM留着底下慢慢看吧弱弱地问一下,那个代码哪里有得下啊?
    我在pudn.com里面找了半天,没找到合适的
    还有,我也没有账号可下载
      

  13.   

    只能说基本确定吧,因为到现在为止我也不知道哪种方法才是正确的按4L介绍的方法,我搜索到一这篇文章,里面有介绍
    http://blog.csdn.net/shanhe/archive/2005/07/31/441702.aspx
    看了头晕啊,兄弟~~
      

  14.   

    to:ziplj
    能否帮我搜索一下,是哪个例子呀?自己在你说的pudn.com中未找到to:Tr0j4n
    我帖子中描述得很清楚呀,就是点击QQ上面的邮箱,用浏览器打开,地址是如何传递给浏览器的,在浏览器中是什么技术?maxthon和360浏览器都有这个功能,我做的浏览器也想加入这个功能
      

  15.   

    传递的就是程序的命令行呀,我前面不是说了么,在程序的Create中进行重载,CWinApp::m_lpCmdLine就是传递的参数URL
      

  16.   

    这个方法只能是本地打开htm文件可以传递m_lpCmdLine这个参数
    他的引用是 "可执行浏览器路径" "打开htm的地址"
    这个方法只适用于本地打开程序时传递的参数,不适用于互联网这种方法连插入U盾都弹不出来你实践一下试试就知道了?
      

  17.   

    我刚试过了,可以的
    测试运行  D:\Avant Browser\avant.exe www.baidu.com,成功的在标签页打开了
      

  18.   

    我认为楼主应该放弃这个需求。玩DDE虽然能获取这些参数(可以用MFC来试验一下,然后看看MFC操作DDE的代码),但还是挺麻烦的,OLE方式就别去钻研了。楼上一些人一直说取命令行,还没有到本质上来,取命令行只针对第一次启动程序有效,例如 iexplorer.exe http://www.google.com,这样可以得到URL参数。问题是如果IE已经启动了,现在又需要打开另一个URL(这里排除每个URL对应一个独立IE进程的情况,不符合楼主期望),最终结果就是在已经运行的IE中打开第二个URL,此时取命令行参数是得不到第二个URL的。事实上,SHELL启动第二个命令(假设是 iexplorer.exe http://www.baidu.com)并不会启动一个新的IE进程,而是寻找第一个IE进程注册的DDE SERVER,如果找到,则直接通过DDE消息把URL传递过去。第一个IE进程接收到DDE消息,会创建一个窗口打开新的URL。
      

  19.   

    这个问题我不想和你争了,只想问你对MFC中
    // Parse command line for standard shell commands, DDE, file open
    这句话有没有理解?如果你实在不理解,那你做一个最简便的测试方法
    用你的浏览器替换一下默认的浏览器(所谓默认,不一定是IE,先点击率QQ空间,看一下什么浏览器打开,就知道什么是默认浏览器)
    查看一下,你的网址是否能正确打开,就很清楚你传递的参数是否正确
      

  20.   

    没错,我的Avant就是默认浏览器。我点击QQ空间,游戏都是调用的这个打开的
      

  21.   

    真的不好意思,中午出去吃饭才回来不需要录像给我看了,我相信,你说得一点都没错,m_lpCmdLine的确是可以正常打开QQ空间等现在不是打开QQ空间,而是建设银行的E路通安全套件上的,帮助中的,链接
    http://www.ccb.com/portal/cn/home/download.htm
    ----中国建设银行E路护航网银安全组件(个人版)安装后:中国建设银行网银安全检测工具---------->帮助
    里面链接任意点击率,就会发现打不开,就会出现我所描述的情况这个里面的链接真的点击不开,弹出的参数都是embeddin
    现在不清楚原因
      

  22.   

    就是自己做的浏览器用<中国建设银行E路护航网银安全组件>点击上面链接打不开的,传入参数错误