环境: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