点击QQ聊天窗口中的链接能否根据不同条件来用不同的浏览器打开,以往只能是用系统默认的、或QQ浏览器。
#SingleInstance, Ignore
Loop %0%
{
;过滤一些可能的风险
tmpstr = % %A_Index%
IfInString, tmpstr, .dll
ExitApp
if regexmatch(tmpstr,"^-.*")
ExitApp
;正常则拼接好参数
paras = %paras%%A_Space%`"%tmpstr%`"
}
;你指定的默认浏览器路径
browser ="D:\Mozilla Firefox\firefox.exe"
WinGetActiveTitle,currentWin
GetKeyState, state1, Shift
GetKeyState, state2, Ctrl
;根据不同条件来设置不同逻辑,你自由发挥
if state1 = D
{
;如果按shift键则用
run "E:\ChromePlus\Google Chrome\chrome.exe" %1%
}
else if state2 = D
{
;如果按Ctrl键则用
run "D:\Opera\opera.exe" %1%
}
else
{
TrayTip ,,当前激活的窗口是%currentWin%,10 ;还可以根据当前窗口来选择不同的浏览器来响应
Run, % paras ? browser " " paras : browser
}
return
**将上面代码存为myBrowser.ahk,放到e:\myBrowser\目录中,并将ahk编译成exe。然后按下面配置注册表。
win7注册表中与默认浏览器设置相关的键和xp并不一样,经过反复尝试后,发现只要修改两个地方即可。
-首先,在[HKEY_CLASSES_ROOT]中添加一个自定义的“类型”。
-其次,关联http协议到该类型。具体代码如下:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\myBrowser]
@="myBrowser Document"
[HKEY_CLASSES_ROOT\myBrowser\Shell]
[HKEY_CLASSES_ROOT\myBrowser\Shell\open]
[HKEY_CLASSES_ROOT\myBrowser\Shell\open\command]
@="\"e:\\myBrowser\\myBrowser.exe\" \"%1\""
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"Progid"="myBrowser"
测试,默认用firefox打开,按shift(一直按着直到) Chrome打开