环境: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.youkuaiyun.com/java_zys/article/details/51837899
假如,网址里有多个参数,一定要下载解压博主提供的.exe压缩文件,打开可以看到3个文件,打开文件修改成自己需要的代码(博主提供的是谷歌打开IE,我要的是IE打开谷歌,故有修改)
网址修改:&改为separator
例如超链接<a href="alert:http://网址/?参数1=11separator参数2=22"></a>
如:
this.leaveRecord2.Visible = false;
this.newLeaveRecord.Visible = true;
string url = get_url();
url = url.Replace("&", "separator");
this.newLeaveRecord.HRef = "alert:" + url;
问题:有时会显示“********,无法访问注册表”,权限问题,将用户加到管理组
右键我的电脑-管理-本地用户和组,选择组-administrator
文件:alert 属性:注册表项 (.reg)
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\alert]
@="URL:Alert Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\alert\DefaultIcon]
@="chrome.exe,1"
[HKEY_CLASSES_ROOT\alert\shell]
[HKEY_CLASSES_ROOT\alert\shell\open]
[HKEY_CLASSES_ROOT\alert\shell\open\command]
@="cmd /c set m=%1 & \"C:\\Program Files\\alert\\openIE.bat\" %%m%% & exit"
文件:openChrome 属性:Windows 批处理文件 (.bat)
@echo off
set m=%m:alert:=%
set m="%m:separator=&%"
start "" "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" %m%
exit
文件:openIE 属性:Windows 批处理文件 (.bat)
@echo off
set m=%m:alert:=%
set m="%m:separator=&%"
start "" "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" %m%
exit
文件:runreg 属性:Windows 批处理文件 (.bat)
REGEDIT /S alert.reg