Phím tắt Windows tùy chỉnh đáng tin cậy?


9

Tôi có các phím tắt Windows toàn cầu được gán cho một số trường hợp cmd.exe khác nhau. Tôi làm điều này bằng cách tạo các phím tắt cho cmd.exe trên máy tính để bàn của mình và gán cho mỗi phím tắt một phím tắt duy nhất (ví dụ: CTRL + SHIFT + U). Công cụ khá cơ bản. Tôi đang sử dụng Win2K8 (R1 và R2).

Điều này hoạt động tốt ... hầu hết thời gian. Nhưng với sự đều đặn đáng sợ, đôi khi không. Hoặc nó sẽ hoạt động với độ trễ dài (nhiều giây). Không quan trọng ứng dụng nào hiện đang tập trung (thậm chí nó có thể là một trong những dấu nhắc lệnh). Việc tôi gán phím nào không quan trọng (tôi đã thử một vài biến thể của WIN, CTRL và SHIFT). Tôi đã nhận thấy rằng điều này thường xuyên, nhưng không phải lúc nào cũng tương quan với explorer.exe đang vật lộn bằng cách này hay cách khác (giả sử, cửa sổ explorer mở cho một chia sẻ tệp không khả dụng hoặc ứng dụng không phản hồi hoặc bất cứ điều gì). Nói cách khác, việc xử lý phím tắt dường như rất nhạy cảm với hoạt động của hệ thống không liên quan. Lưu ý rằng bất cứ khi nào tôi gặp vấn đề này, tôi luôn có thể thành công ALT + TAB cho cửa sổ mà tôi muốn truy cập, nhưng điều đó thật tẻ nhạt.

Tôi sử dụng các phím tắt cho các cửa sổ lệnh này hàng trăm lần một ngày để thậm chí tỷ lệ thất bại 1% trở nên thực sự khó chịu.

Có cách nào để khắc phục điều này không, hoặc có một số tiện ích của bên thứ ba ngoài đó sẽ ĐÁNG TIN CẬY chặn các tổ hợp phím tùy chỉnh để tập trung vào bất kỳ ứng dụng nào tôi muốn, theo cách độc lập với hoạt động khác của hệ thống?

ĐỊA CHỈ:

Có một thuộc tính của các phím tắt Windows mà tôi không muốn mất nếu chuyển sang công cụ phím nóng của bên thứ ba: Các phím tắt Windows là không cần thiết. Khi bạn đã khởi chạy một lối tắt đến một số ứng dụng, nhấn tổ hợp phím tắt một lần nữa sẽ đưa bạn đến quy trình đã được khởi chạy - nó không khởi chạy một quy trình mới.

Câu trả lời:


7

Sử dụng Autohotkey. Ngôn ngữ kịch bản không chuẩn và có thể khó học, nhưng nếu tất cả những gì bạn muốn làm là khởi chạy các chương trình một cách đáng tin cậy, thì nó đơn giản. Ngoài ra, bạn có thể tắt phím tắt Windows! Sử dụng tập lệnh mẫu sau và sửa đổi nó theo nhu cầu của bạn. (Dòng bắt đầu bằng ;ý kiến.)

;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

Lưu tệp này dưới dạng tệp .ahk trên máy tính để bàn của bạn, cài đặt autohotkey và chạy nó.

Mỗi khi bạn nhấn bất kỳ tổ hợp phím nào, AutoHotkey sẽ quét tập lệnh này. Nếu nó khớp với bất kỳ tổ hợp phím nào có trước a ::, nó sẽ thực thi lệnh tiếp theo. Nếu câu lệnh return bị thiếu, AHK sẽ tiếp tục quét tập lệnh cho phù hợp sau khi thực hiện câu lệnh của bạn. Các kết hợp chính được mô tả dưới đây.

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

Bạn có thể sử dụng chúng trong bất kỳ kết hợp với các chữ cái của bàn phím của bạn. Một sự kết hợp tôi thấy cực kỳ hữu ích là như sau.

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

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

Đây là Alt + `và Win +`. Khi tập lệnh này đang chạy và tôi nhấn alt + `, tập lệnh sẽ gửi ctrl + F4. Thắng + `trở thành alt + F4.

Autohotkey về cơ bản là ngôn ngữ lập trình của nó. Tôi có các tập lệnh được thiết lập mô phỏng hệ thống "Rocker Gestures". Tôi có GMail như các phím tắt cho email của tôi. Nếu bạn dành thời gian để tìm hiểu một số thủ thuật của nó, bạn có thể nhận được các loại hạt với nó. Lifehacker có cả đống kịch bản hữu ích cho Autohotkey. Chúc vui vẻ!


3
Hmm - một tính năng quan trọng của phím tắt Windows mà tôi dựa vào là tính không thay đổi của nó. Lần đầu tiên tôi nhấn CTRL + SHIFT + U để hiển thị một dấu nhắc đã cho, nó sẽ khởi chạy cmd.exe. Lần tiếp theo tôi nhấn combo đó, nếu cmd.exe đó vẫn đang chạy, nó chỉ đơn giản là đưa nó ra phía trước, thay vì khởi chạy một thể hiện khác (đó là những gì lệnh chạy Autohotkey thực hiện). Có cách nào để dễ dàng làm điều đó với AHK không?
Peter Baer

3

Đây là cách tôi sử dụng AutoHotkey một cách đáp ứng của bạn idempotent yêu cầu.

Ví dụ: tôi đã nối Caps Lock+ avào cửa sổ Firefox trên Stack Overflow, Caps Lock+ svới Firefox tại Super User và Caps Lock+ dvới dấu nhắc lệnh.

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")

Bạn có thể thay đổi chế độ khớp tiêu đề để hạn chế như bạn cần. Nếu tôi có một phím nóng khác khớp với "Mozilla Firefox" (thay vì "Siêu người dùng" chẳng hạn) thì nó sẽ quay vòng qua tất cả các phiên bản Firefox của tôi, vì mỗi phiên bản đều có văn bản đó trong tiêu đề cửa sổ và tôi đã đặt nó phù hợp với văn bản bất cứ nơi nào trong tiêu đề.

Kịch bản này chủ yếu dựa trên bài viết này tại LifeHacker.


Làm thế nào kịch bản này có thể được sửa đổi thành KHÔNG bình thường? Cụ thể, tôi muốn có nhiều phiên bản của một chương trình nếu tôi nhấn các phím tắt (Tôi đang chạy putty và cần có khả năng kết nối với hơn 4 máy chủ tại bất kỳ thời điểm nào và không muốn phải chạm vào chuột )
Doktor J

Nếu có văn bản cụ thể, duy nhất trong tiêu đề cửa sổ cho mỗi phiên bản, bạn có thể gán các phím nóng để khớp với văn bản đó. Xem Caps+aCaps+strên cho hai trường hợp khác nhau của firefox, @DoktorJ
yhw42

Nhưng nếu tôi không bao giờ muốn nó phù hợp thì sao? Khi tôi chuyển đổi giữa chúng, tôi chỉ ALT + TAB, vì vậy tôi không cần lối tắt cho mỗi phiên bản PuTTY - Tôi chỉ cần một phím tắt luôn mở một phiên bản mới của PuTTY, bất kể tôi đã có bao nhiêu cửa sổ PuTTY đã mở Sẽ chỉ gọi "chạy c: \ tools \ putty \ putty.exe" trực tiếp từ phím nóng được chỉ định để làm điều này?
Doktor J

@DoktorJ: Ồ! Đúng. Đó chính xác là cách bạn làm điều đó. Mặc dù tôi nghĩ rằng bạn cũng có thể gán các phím nóng trong thuộc tính phím tắt Windows. Tôi đã giả định rằng bạn có ý định Caps+1chỉ ra một trường hợp cụ thể của PuTTY (theo ý kiến ​​của tôi tốt hơn AltTab :)).
yhw42

3

Một cách khác để khởi chạy chương trình của bạn nhanh và trực quan:

Ra mắt

Launchy là một cửa sổ miễn phí và tiện ích linux được thiết kế để giúp bạn quên đi menu bắt đầu, các biểu tượng trên máy tính để bàn và thậm chí cả trình quản lý tệp của bạn.

Launchy lập chỉ mục các chương trình trong menu bắt đầu của bạn và có thể khởi chạy các tài liệu, tệp dự án, thư mục và dấu trang của bạn chỉ bằng một vài lần nhấn phím!

văn bản thay thế


Điều này trông giống như tìm kiếm menu bắt đầu Win7.
Theo Belaire

@Tyr: không. Tôi đã bắt đầu sử dụng nó trong Windows XP, nhưng tiếp tục làm như vậy trong Win7. Tôi đã không sử dụng tìm kiếm menu bắt đầu rất nhiều, nhưng ấn tượng của tôi là Launchy vẫn nhanh hơn. Tôi có thể sai về điều đó mặc dù.
Gauthier

2

Đáng tiếc là 6 năm sau với Windows 10 các vấn đề tương tự tồn tại, và với một Windows 10 cập nhật gần đây tôi phát hiện ra rằng một số phím tắt / chương trình không còn idempotent ! Đặc biệt là Putty nơi tôi có nhiều phím tắt cho cùng một phiên.

Vì vậy, tôi sử dụng AutoHotKey và sửa đổi chức năng được chia sẻ trong chuỗi này (dựa trên bài viết này tại LifeHacker ) để nó sử dụng tệp INI để theo dõi từng phím tắt. Điều này không sử dụng Tiêu đề Windows của từng chương trình vì có thể thay đổi trong Putty nếu bạn sử dụng màn hình hoặc SSH sang máy chủ khác, một tính năng mà cá nhân tôi muốn giữ!

Ngoài ra, còn có một hàm "DeleteINIEntry ()" mà bạn có thể tạo một lối tắt để xóa nó khỏi mục UniqueName khỏi tệp INI. Hoặc bạn có thể tự chỉnh sửa và thay đổi tập tin.

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" )

Nếu bạn không muốn cửa sổ thu nhỏ, sau đó chỉ cần nhận xét (nhập a;) vào dòng WinMinizing và nó sẽ chỉ tập trung vào cửa sổ đang hoạt động.


1

Nó không phải là hoạt động không liên quan, explorer là quá trình xử lý các phím tắt này.

Có các tiện ích (ví dụ: http://www.vsisystems.com/keyboardshortype.htmlm ) có ý định có chức năng này, nhưng tôi không biết liệu có bất kỳ trong số chúng sẽ giải quyết vấn đề tốc độ không.


1

Nếu Explorer bận thì nó không thể xử lý các phím tắt, do đó cần có chương trình khác.

Một launcher đơn giản và hiệu quả là PS Hot Launch VVL :

Đây là một tiện ích miễn phí cho phép bạn xác định các phím nóng của riêng mình để một lần nhấn phím có thể khởi chạy một ứng dụng, chèn văn bản thường được sử dụng, thay đổi âm lượng âm thanh của bạn hoặc bất kỳ thứ gì khác. Chương trình yêu cầu Win95 / 98 / ME hoặc WinNT / 2000 / XP và là một trình diễn xuất sắc ngay cả trên các máy chậm. PS Hot Launch là sự thay thế hoàn hảo cho menu Start và bảng Quick Launch.

hình ảnh

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.