在IE浏览器里打开谷歌

环境:Windows server 2003   ,VS2008

在ie浏览器打开谷歌方法总结:

1.window.open(),谷歌浏览器设为默认浏览器;

  缺点:初始在系统在ie打开时无法跳转到谷歌

2.System.Diagnostics.Process.Start("chrome.exe", url);  

  问题:vs执行ok,但是发布iis之后,会煽动一下,然后没有反应了,也不跳转

  原因:网上大多说是权限问题,但是俺目前没有解决这个问题,具体什么权限问题也不知道,权限怎么设置,要是有网友知道希望能评论告知

3.ShellExecut

ShellExecute(IntPtr.Zero, "open", "chrome.exe", url, "", ShowCommands.SW_SHOWNORMAL);
public enum ShowCommands : int
        {
            SW_HIDE = 0,
            SW_SHOWNORMAL = 1,
            SW_NORMAL = 1,
            SW_SHOWMINIMIZED = 2,
            SW_SHOWMAXIMIZED = 3,
            SW_MAXIMIZE = 3,
            SW_SHOWNOACTIVATE = 4,
            SW_SHOW = 5,
            SW_MINIMIZE = 6,
            SW_SHOWMINNOACTIVE = 7,
            SW_SHOWNA = 8,
            SW_RESTORE = 9,
            SW_SHOWDEFAULT = 10,
            SW_FORCEMINIMIZE = 11,
            SW_MAX = 11
        }
        [DllImport("shell32.dll")]

        static extern IntPtr ShellExecute(
            IntPtr hwnd,
            string lpOperation,
            string lpFile,
            string lpParameters,
            string lpDirectory,
            ShowCommands nShowCmd);

问题:同Process.Start一样,vs执行ok,但是发布iis之后,会煽动一下,然后没有反应了,也不跳转

原因:未知

3.ActiveXObject("WScript.Shell")//js

 function test()
    {
      var url= '<%=get_url() %>';//获取后台C#传的URL
       // ActiveObject仅在IE下可创建
      var objShell = new ActiveXObject("WScript.Shell");
      // 注意这里是/c,不可使用/k,否则资源不会释放
      var cmd = "cmd.exe /c start chrome " + url;
      objShell.Run(cmd, 0, true);
    }

问题:Automation ,服务器不能创建新对象

解决:可自行百度,但是百度提供的方法没有解决我的问题,不知道为啥

4.自定义协议

这是参照一位博主提供方法,链接如下:

https://blog.csdn.net/java_zys/article/details/51837899

假如,网址里有多个参数,一定要下载解压博主提供的.exe压缩文件,打开可以看到3个文件,打开文件修改成自己需要的代码(博主提供的是谷歌打开IE,我要的是IE打开谷歌,故有修改)

网址修改:&改为separator

例如超链接

问题:有时会显示“********,无法访问注册表”,权限问题,将用户加到管理组

右键我的电脑-管理-本地用户和组,选择组-administrator

你可能感兴趣的:(web开发)