Autohotkey 自动热键运行/激活SQL server management studio
大家好,我正在努力与自动热键和简单的键绑定 我试图实现的是,如果ssms未运行,请启动它,否则请设置此程序的焦点/活动状态。目前我有这样的想法:Autohotkey 自动热键运行/激活SQL server management studio,autohotkey,Autohotkey,大家好,我正在努力与自动热键和简单的键绑定 我试图实现的是,如果ssms未运行,请启动它,否则请设置此程序的焦点/活动状态。目前我有这样的想法: +!s:: StringCaseSense, On process, exist, Ssms.exe { If !errorLevel Run "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe" el
+!s::
StringCaseSense, On
process, exist, Ssms.exe
{
If !errorLevel
Run "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe"
else
IfWinExist Microsoft SQL Server Management Studio
WinActivate
}
在我在ssms中创建/打开任何SQL脚本之前,这都可以正常工作。如何修复此脚本有什么想法吗?该代码应该适合您:
+!s::
StringCaseSense, On
Process, Exist, Ssms.exe
if ErrorLevel
{
IfWinExist, Microsoft SQL Server Management Studio
{
WinActivate
}
}
else
{
Run, C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe
}
return
这里还有相同的代码,但适用于notepad.exe,我已经测试过,它运行良好:
+!s::
StringCaseSense, On
Process, Exist, notepad.exe
if ErrorLevel
{
IfWinExist, Untitled - Notepad
{
WinActivate
}
}
else
{
Run, c:\Windows\notepad.exe
}
return
这是我所有快捷方式的简化版本。它使用一个函数(可以重用)。第一个参数是窗口标题中的文本。第二个是exe路径
SetTitleMatchMode, 2
+!s::ShowStart("Microsoft SQL Server Management Studio", "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe")
ShowStart(title, exe)
{
IfWinExist, %title%
WinActivate
else
{
Run, %exe%,, UseErrorLevel
If ErrorLevel
{
Msgbox, Exe not found.
Return
}
WinActivate
}
}
那个代码块在那里做什么<代码>过程不是条件语句!这就是为什么您要检查
ErrorLevel
。非常感谢。这工作得很好,它还减少了为多个程序实现相同功能所需的代码量+1我想分享一个稍微离题的说明,因为在我搜索解决方案时出现了这个页面。如果您的脚本不是以管理员身份运行,则自动热键的IfWinActive可能无法检测到SSM。