参考了博主的文章:https://blog.csdn.net/chenlu5201314/article/details/108855574
但鸡肋的是还要自己开发本地程序。我就是简单调用电脑已安装数据库连接软件并传递连接信息,让自动连接上。方便快速开发测试。
这种疑难杂症还需要定力,坐不住的人早早下班回家了。
解决思路:利用windows powershell传参调数据库连接客户端exe
解决过程
1,编写注册表reg文件:calldbeaver.reg
最后一行的写法是难点。截取前24位“WinURLProtocolDBeaver://”前缀。删除最后一个字符“/”后缀,才能通过1%获得-con "driver=oracle|port=1521|user=sys|password=123456|host=192.168.110.67|database=orcl|prop.internal_logon=sysdba" -bringToFront
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WinURLProtocolDBeaver]
@="WinURLProtocolDBeaver"
"URL Protocol"="C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WinURLProtocolDBeaver\DefaultIcon]
@="\"C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe\",0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WinURLProtocolDBeaver\shell]
@=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WinURLProtocolDBeaver\shell\open]
@=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WinURLProtocolDBeaver\shell\open\command]
@="\"C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe\" -Command \"$a=([System.Net.WebUtility]::UrlDecode(\\\"%1\\\"));$a=$a.Substring(0, $a.Length - 1).Substring(24); Start-Process -FilePath \\\"C:\\Program Files\\DBeaver\\dbeaver.exe\\\" -ArgumentList @($a)\""
2,双击运行、成功导入注册表
3,编写html
<!DOCTYPE html><html>
<head>
<script>
function test()
{
var url = "WinURLProtocolDBeaver://";
url += encodeURI('-con "driver=oracle|port=1521|user=sys|password=123456|host=192.168.110.67|database=orcl|prop.internal_logon=sysdba" -bringToFront');
window.location.href = url;
console.info(window.location.href)
}
</script>
</head>
<body>
<button onclick="test()" text="dddd">打开DBeaver程序</button><br/>
<a href="WinURLProtocolDBeaver://-con%20%22driver=oracle%7Cport=1521%7Cuser=sys%7Cpassword=123456%7Chost=192.168.110.67%7Cdatabase=orcl%7Cprop.internal_logon=sysdba%22%20-bringToFront">打开DBeaver程序1</a><br/>
<a href="WinURLProtocolWireshark://">打开Wireshark程序</a><br/>
</body>
</html>
分两种写法,onclick js中动态传参和固定写在href里的。
4,运行html
5, 成功打开数据库连接客户端并自动连接好数据库