안정적인 사용자 지정 Windows 바로 가기 키?


9

여러 다른 cmd.exe 인스턴스에 전역 Windows 바로 가기 키가 할당되어 있습니다. 데스크톱에서 cmd.exe에 대한 바로 가기를 만들고 각 바로 가기 키 (예 : CTRL + SHIFT + U)를 할당하여이 작업을 수행합니다. 아주 기본적인 것들. Win2K8 (R1 및 R2)을 사용하고 있습니다.

이것은 대부분 잘 작동합니다. 그러나 격렬한 규칙으로 때로는 그렇지 않습니다. 또는 오랜 지연 (수초)으로 작동합니다. 현재 어떤 앱에 포커스가 있는지는 중요하지 않습니다 (명령 프롬프트 중 하나 일 수도 있음). 어떤 키를 할당하는지는 중요하지 않습니다 (WIN, CTRL 및 SHIFT의 몇 가지 변형을 시도했습니다). 필자는 이것이 항상 그런 것은 아니지만 항상 어떤 식 으로든 고생하는 explorer.exe와 상관 관계가 있음을 알았습니다 (예 : 사용할 수없는 파일 공유로 열린 탐색기 창 또는 응답하지 않는 응용 프로그램 등). 즉, 바로 가기 키 처리는 관련없는 시스템 활동에 매우 민감한 것으로 보입니다. 이 문제가있을 때마다 항상 내가 원하는 창에 ALT + TAB을 성공적으로 수행 할 수 있지만 지루합니다.

나는이 명령 창에 대한 지름길을 하루에 수백 번 사용하므로 1 %의 실패율조차도 실제로 성가 시게됩니다.

이 문제를 해결하는 방법이 있습니까, 아니면 다른 시스템 활동과 무관 한 방식으로 원하는 키에 초점을 맞추기 위해 사용자 지정 키 조합을 안정적으로 가로채는 타사 유틸리티가 있습니까?

추가:

타사 단축키 도구로 전환 할 때 잃고 싶지 않은 Windows 단축키의 속성이 있습니다. Windows 단축키는 dem 등입니다. 일부 앱 바로 가기를 시작한 후 바로 가기 키 콤보를 다시 누르면 이미 시작된 프로세스로 이동 합니다. 새 프로세스 는 시작 되지 않습니다 .

답변:


7

오토 핫키를 사용하십시오. 스크립팅 언어는 표준이 아니며 배우기 어려울 수 있지만, 원하는 모든 프로그램을 안정적으로 시작하기 만하면 간단합니다. 또한 Windows 키에서 바로 가기를 만들 수 있습니다! 다음 샘플 스크립트를 사용하여 필요에 따라 수정하십시오. (로 시작하는 줄 ;은 주석입니다.)

;win + alt + e ... unload ipod
#!E::
   run d:\Downloads\Apps\deveject\eject ipod.bat
   return

;win + w ... launch winamp
#w::
    run c:\program files (x86)\winamp\winamp.exe
    return

;win + a ... launch AS400
#a::
    run C:\Program Files (x86)\IBM\Client Access\Emulator\Private\1.ws
    return

;win + Shift a ... launch AS400 Printer
#+a::
    run C:\Program Files (x86)\IBM\Client Access\Emulator\Private\3.ws
    return

;win + ctrl + Shift a ... launch 2nd AS400 
#^+a::
    run C:\Program Files (x86)\IBM\Client Access\Emulator\Private\2.ws
    return

이것을 데스크탑에 .ahk 파일로 저장하고 autohotkey를 설치 후 실행하십시오.

키 조합을 누를 때마다 AutoHotkey가이 스크립트를 스캔합니다. 이 앞에있는 키 조합과 일치 ::하면 다음 명령이 실행됩니다. return 문이 없으면 AHK는 명령문을 실행 한 후 스크립트에서 일치하는 항목을 계속 스캔합니다. 주요 조합은 다음과 같습니다.

# = Windows Key
+ = Shift
^ = Control
! = Alt

키보드 문자와 조합하여 사용할 수 있습니다. 내가 매우 유용하다고 생각하는 조합은 다음과 같습니다.

; ALT Backtick ... ctrl f4
!`::
    Loop, parse, RcvCtrlW, `,
    {
     IfWinActive %A_LoopField%
     {
        sendinput ^w
        Return
     }
    }
    sendinput ^{f4}
    return

; win Backtick ... alt f4
#`::
   sendinput !{f4}
   return   

이것은 Alt +`와 Win +`입니다. 이 스크립트가 실행 중이고 alt +`를 누르면 스크립트는 ctrl + F4를 보냅니다. Win +`는 alt + F4가됩니다.

오토 핫키는 기본적으로 자체 프로그래밍 언어입니다. "Rocker Gestures"시스템 전체를 시뮬레이션하는 스크립트를 설정했습니다. 이메일 바로 가기와 같은 Gmail이 있습니다. 그 트릭을 배우기 위해 시간을 보내면 그 트릭을 얻을 수 있습니다. Lifehacker에는 Autohotkey 에 유용한 스크립트 가 많이 있습니다. 즐기세요!


3
흠-내가 의존하는 Windows 단축키의 중요한 기능은 dem 등성입니다. 주어진 프롬프트를 표시하기 위해 CTRL + SHIFT + U를 처음 누르면 cmd.exe가 시작됩니다. 다음 번에 해당 콤보를 쳤을 때 cmd.exe가 여전히 실행 중이면 다른 인스턴스 (Autohotkey 실행 명령이 수행하는 것)를 시작하는 대신 단순히 전면으로 가져옵니다. AHK로 쉽게 할 수있는 방법이 있습니까?
Peter Baer 2019

3

다음은 귀하의 pot 등원 요구 사항 을 충족시키는 방식으로 AutoHotKey 를 사용 하는 방법입니다 .

예를 들어, 나는 푹했습니다 Caps Lock+를 a스택 오버플로에 파이어 폭스 창으로 Caps Lock+ s슈퍼 사용자에서 파이어 폭스, 그리고 Caps Lock+ d프롬프트 명령.

StartOrToggleMinimize(TheWindowTitle,TheAppPath)
{  
   SetTitleMatchMode, 2
   DetectHiddenWindows, Off
   IfWinActive, %TheWindowTitle%
   {
      WinMinimize, %TheWindowTitle%
   }
   else
   { 
      IfWinExist, %TheWindowTitle%
      {
         WinGet, winid, ID, %TheWindowTitle%
         DllCall("SwitchToThisWindow", "UInt", winid, "UInt", 1)
      }
      else
      {
         run %TheAppPath%
      }
   }
   return
}

; the actual hotkeys:
CapsLock & a::StartOrToggleMinimize("Stack Overflow", "c:\program files\mozilla firefox\firefox.exe -new-window stackoverflow.com")
CapsLock & s::StartOrToggleMinimize("Super User", "c:\program files\mozilla firefox\firefox.exe -new-window superuser.com")
CapsLock & d::StartOrToggleMinimize("cmd", "cmd")

타이틀 일치 모드 를 필요한만큼 제한적으로 변경할 수 있습니다 . 예를 들어 "수퍼 유저"대신 "Mozilla Firefox"와 일치하는 다른 단축키가있는 경우 창 제목에 해당 텍스트가 있고 텍스트와 일치하도록 설정했기 때문에 모든 Firefox 인스턴스를 순환합니다. 제목의 아무 곳이나.

이 스크립트는 LifeHacker의이 기사를 기반으로 합니다.


이 스크립트는 어떻게 dem 등식이되지 않도록 수정 될 수 있습니까? 특히, 내가 원하는 내가 마우스 도달해야 할 바로 가기 키 (나는 퍼티를 실행 해요, 그리고 필요가 주어진 시간에 4+ 서버에 연결할 수 있도록하고 싶지 않아 누르면 프로그램의 여러 인스턴스를 )
Doktor J

각 인스턴스의 창 제목에 고유 한 특정 텍스트가있는 경우 해당 텍스트와 일치하도록 핫키를 할당 할 수 있습니다. 참고 항목 Caps+aCaps+s파이어 폭스, @DoktorJ 두 개의 서로 다른 인스턴스에 대한 위를
yhw42

그러나 내가 그것을 결코 원하지 않는다면 어떻게해야합니까? 그들 사이를 전환 할 때 ALT + TAB 만 있으므로 PuTTY의 각 인스턴스에 대한 바로 가기가 필요하지 않습니다. 이미 PuTTY 창이 몇 개 있더라도 항상 PuTTY 의 인스턴스를 여는 바로 가기가 필요합니다 열었다. 할당 된 핫키에서 직접 "run c : \ tools \ putty \ putty.exe"를 호출하면이 작업을 수행합니까?
Doktor J

@DoktorJ : 아! 예. 그것이 바로 당신이 한 일입니다. Windows 단축키 속성에서도 단축키를 할당 할 수 있다고 생각합니다. 나는 당신 Caps+1이 PuTTY의 특정 인스턴스 (내 의견으로는 AltTab보다 낫다)를 가리킨다 고 가정했습니다 :).
yhw42

3

프로그램을 빠르고 직관적으로 시작하는 또 다른 대안 :

발사

Launchy는 시작 메뉴, 바탕 화면의 아이콘 및 파일 관리자를 잊어 버릴 수 있도록 설계된 무료 창 및 Linux 유틸리티입니다.

Launchy는 시작 메뉴에서 프로그램을 색인화하고 몇 번의 키 입력으로 문서, 프로젝트 파일, 폴더 및 책갈피를 시작할 수 있습니다!

대체 텍스트


이것은 Win7 시작 메뉴 검색처럼 보입니다.
Theo Belaire

@Tyr : 그렇습니다. Windows XP에서 사용하기 시작했지만 Win7에서도 계속 사용합니다. 시작 메뉴 검색을 많이 사용하지는 않았지만 Launchy가 여전히 빠릅니다. 그래도 틀릴 수도 있습니다.
Gauthier

2

불행히도 6 년 후 Windows 10에서 동일한 문제가 발생했으며 최근 Windows 10 업데이트에서 일부 바로 가기 / 프로그램이 더 이상 dem 등하 지 않음을 발견했습니다 ! 특히 같은 세션에 여러 단축키가있는 퍼티.

그래서 AutoHotKey를 사용 하고 LifeHacker 의이 기사를 기반 으로이 스레드에서 공유되는 기능을 수정하여 INI 파일을 사용하여 각 바로 가기를 추적합니다. 이것은 개인적으로 유지하고 싶은 기능인 다른 서버에 화면이나 SSH를 사용하면 퍼티에서 변경 될 수 있으므로 각 프로그램의 Windows 제목을 사용하지 않습니다!

INI 파일에서 UniqueName 항목을 제거하기위한 바로 가기를 작성할 수있는 "DeleteINIEntry ()"함수도 포함되어 있습니다. 또는 파일을 수동으로 편집하고 변경할 수 있습니다.

INIFilePath := "C:\Temp\AHK.ini"

RunOrSwitchWin( UniqueName, AppPath )
{  
    global INIFilePath
    IniRead, TargetID, %INIFilePath%, windowids, %UniqueName%
    ActiveID := WinExist("A")

    ; cannot use '=' here as comparing an integar to string doesn't work well
    IfEqual TargetID, %ActiveID%
    {
        WinMinimize 
        return
    }

    WinGet, AllIDs, list

    Loop, %AllIDs%
    {
        this_id := AllIDs%A_Index%

        ifEqual TargetID, %this_id%
        {
            DllCall("SwitchToThisWindow", "UInt", this_id, "UInt", 1)
            return
        }
    }

    run, %AppPath%,,, CurrentPID
    WinWait ahk_pid %CurrentPID%
    IniWrite, % WinExist("A"), %INIFilePath%, windowids, %UniqueName%

   return
}

DeleteINIEntry()
{
    global INIFilePath
    InputBox, UniqueName, Delete INI Entry, Enter UniqueName

    If ErrorLevel = 0
        IniDelete, %INIFilePath%, windowids, %UniqueName%

    return
}

^!3::DeleteINIEntry()

; Putty shortcuts. 
; ^!1 is NOT idempotent and will run it over and over again.
^!1::run "C:\Program Files\PuTTY\putty.exe"
^!2::RunOrSwitchWin( "session1", "C:\Program Files\PuTTY\putty.exe -load session1" )

창을 최소화하지 않으려면 WinMinimize 줄에 주석을 추가하고 (; 앞에 붙임) 단순히 활성 창에 계속 집중합니다.


1

관련없는 활동이 아니며 탐색기는 이러한 단축키를 처리하는 프로세스입니다.

이 기능을 제공하는 유틸리티 (예 : http://www.vsisystems.com/keyboardshortcuts.htm )가 있지만 속도 문제를 해결할 수있는 유틸리티 가 있는지 모르겠습니다.


1

탐색기가 사용 중이면 바로 가기를 처리 할 수 ​​없으므로 다른 프로그램이 필요합니다.

간단하고 효율적인 런처는 PS Hot Launch VVL입니다 .

이것은 하나의 키를 눌러 응용 프로그램을 시작하고, 일반적으로 사용되는 텍스트를 삽입하거나, 오디오 볼륨을 변경하거나 그 밖의 다른 것들을 할 수 있도록 자신 만의 핫키를 정의 할 수있는 무료 유틸리티입니다. 이 프로그램에는 Win95 / 98 / ME 또는 WinNT / 2000 / XP가 필요하며 느린 컴퓨터에서도 탁월한 성능을 발휘합니다. PS Hot Launch는 시작 메뉴와 빠른 실행 패널의 완벽한 대안입니다.

영상

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.