2014-07-15 2 views
0

모두들 저는 AutoHotKey 및 간단한 키 바인딩으로 고심하고 있습니다.AutoHotKey 실행/SQL 서버 관리 스튜디오 활성화

내가 달성하려는 것은 ssms이 실행되고 있지 않으면 시작하고, 그렇지 않으면 focus/active를 설정하는 것입니다. 현재로서는 다음과 같은 것을 가지고 있습니다 :

+!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 스크립트를 만들거나 열 때까지는 꽤 잘 작동합니다. 어떤 아이디어이 스크립트를 수정하는 방법?

+0

그 코드 블록은 무엇을하고 있습니까? '프로세스'는 조건문이 아닙니다! 그래서 'ErrorLevel'을 확인하는 것입니다. – MCL

답변

1

이것은 모든 단축키에 대해 사용하는 단순화 된 버전입니다. 그것은 (재사용 될 수있는) 함수를 사용합니다. 첫 번째 매개 변수는 창 제목의 텍스트입니다. 두 번째는 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 
    } 
} 
+0

고마워요. 이것은 잘 작동하며 여러 프로그램에서 동일하게 달성하는 데 필요한 코드의 양을 줄입니다. +1 – Kajiyama

0

코드는 당신을 위해 일해야 :

여기
+!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 

하는 새로운 버전을 다운로드 AutoHotkey from http://ahkscript.org/ (현재 버전). autohotkey.com의 AutoHotkey가 구형입니다!

관련 문제