Tombol pintas Windows kustom yang dapat diandalkan?

9

Saya memiliki tombol pintas Windows global yang ditetapkan untuk beberapa contoh cmd.exe yang berbeda. Saya melakukan ini dengan membuat pintasan ke cmd.exe di desktop saya, dan menetapkan masing-masing tombol pintas unik (misalnya, CTRL + SHIFT + U). Hal-hal yang cukup mendasar. Saya menggunakan Win2K8 (R1 dan R2).

Ini berfungsi dengan baik ... sebagian besar waktu. Tetapi dengan keteraturan yang menyebalkan, terkadang tidak. Atau itu akan bekerja dengan penundaan yang lama (banyak detik). Tidak masalah aplikasi apa yang saat ini memiliki fokus (bahkan bisa menjadi salah satu perintah yang diminta). Tidak masalah apa kunci yang saya tetapkan (Saya sudah mencoba beberapa variasi WIN, CTRL dan SHIFT). Saya memang memperhatikan bahwa ini sering, tetapi tidak selalu, berkorelasi dengan explorer.exe yang berjuang dalam beberapa hal (misalnya, jendela penjelajah dibuka untuk berbagi file yang tidak tersedia, atau aplikasi menjadi tidak responsif, atau apa pun). Dengan kata lain penanganan tombol pintasan tampaknya sangat sensitif terhadap aktivitas sistem yang tidak terkait. Perhatikan bahwa setiap kali saya memiliki masalah ini, saya selalu berhasil ALT + TAB ke jendela yang ingin saya tuju, tapi itu membosankan.

Saya menggunakan cara pintas ke windows perintah ini ratusan kali sehari sehingga bahkan tingkat kegagalan 1% menjadi sangat mengganggu.

Apakah ada cara untuk memperbaikinya, atau adakah utilitas pihak ketiga di luar sana yang akan DIANDALKAN mencegat kombinasi tombol khusus untuk membawa fokus ke aplikasi apa pun yang saya inginkan, dengan cara yang tidak tergantung pada aktivitas sistem lain?

TAMBAHAN:

Ada properti cara pintas Windows yang saya tidak ingin kehilangan jika beralih ke alat hotkey pihak ketiga: Cara pintas Windows idempoten. Setelah meluncurkan pintasan ke beberapa aplikasi, menekan kombo tombol pintas lagi akan membawa Anda ke proses yang sudah diluncurkan - itu tidak meluncurkan proses baru.

Peter Baer
sumber

Jawaban:

7

Gunakan Autohotkey. Bahasa scripting tidak standar dan sulit dipelajari, tetapi jika yang ingin Anda lakukan adalah meluncurkan program dengan andal, itu sederhana. Plus, Anda dapat membuat pintasan dari tombol Windows! Gunakan skrip sampel berikut dan modifikasi sesuai kebutuhan Anda. (Baris yang dimulai dengan ;adalah komentar.)

;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

Simpan ini sebagai file .ahk di desktop Anda, instal autohotkey dan jalankan.

Setiap kali Anda menekan kombinasi tombol apa saja, AutoHotkey akan memindai skrip ini. Jika cocok dengan salah satu kombinasi tombol yang mendahului a ::, itu akan menjalankan perintah berikutnya. Jika pernyataan pengembalian tidak ada, AHK akan terus memindai skrip untuk kecocokan setelah mengeksekusi pernyataan Anda. Kombinasi tombol dijelaskan di bawah ini.

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

Anda dapat menggunakannya dalam kombinasi apa pun dengan huruf keyboard Anda. Satu kombinasi yang menurut saya sangat berguna adalah sebagai berikut.

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

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

Ini adalah Alt + `dan Win +`. Ketika skrip ini berjalan dan saya menekan alt + `, skrip mengirimkan ctrl + F4. Win + `menjadi alt + F4.

Autohotkey pada dasarnya adalah bahasa pemrogramannya sendiri. Saya memiliki skrip yang mensimulasikan "Rocker Gestures" di seluruh sistem. Saya memiliki GMail seperti pintasan untuk email saya. Jika Anda menghabiskan waktu untuk mempelajari beberapa triknya, Anda bisa menjadi gila dengannya. Lifehacker memiliki sejumlah skrip yang berguna untuk Autohotkey. Selamat bersenang-senang!

Tim Coker
sumber
3
Hmm - fitur penting dari tombol pintas Windows yang saya andalkan adalah idempotensinya. Pertama kali saya menekan CTRL + SHIFT + U untuk memunculkan prompt yang diberikan, ia meluncurkan cmd.exe. Lain kali saya menekan kombo itu, jika cmd.exe itu masih berjalan, itu hanya membawanya ke depan, bukannya meluncurkan contoh lain (yang adalah apa yang menjalankan perintah Autohotkey tidak). Apakah ada cara untuk melakukannya dengan mudah dengan AHK?
Peter Baer
3

Inilah cara saya menggunakan Autohotkey dengan cara yang memenuhi idempoten Anda persyaratan .

Sebagai contoh, saya telah menghubungkan Caps Lock+ ake jendela Firefox di Stack Overflow, Caps Lock+ ske Firefox di Super User, dan Caps Lock+ dke prompt perintah.

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

Anda dapat mengubah mode kecocokan judul menjadi seketat yang Anda butuhkan. Jika saya memiliki hotkey lain yang cocok dengan "Mozilla Firefox" (bukan "Pengguna Super", misalnya) itu akan menggilir semua contoh Firefox saya, karena masing-masing memiliki teks dalam judul jendela dan saya mengaturnya agar sesuai dengan teks di mana saja dalam judul.

Skrip ini sangat didasarkan pada artikel ini di LifeHacker.

yhw42
sumber
Bagaimana skrip ini dapat dimodifikasi agar TIDAK menjadi idempoten? Secara khusus, saya ingin beberapa contoh program jika saya menekan tombol pintas (saya sedang menjalankan dempul, dan harus dapat terhubung ke 4+ server pada waktu tertentu, dan tidak ingin harus meraih mouse )
Doktor J
Jika ada teks khusus dan unik dalam judul jendela untuk setiap contoh, Anda dapat menetapkan tombol cepat untuk mencocokkan teks itu. Lihat Caps+adan di Caps+satas untuk dua contoh firefox yang berbeda, @DoktorJ
yhw42
Tetapi bagaimana jika saya tidak pernah ingin itu cocok? Ketika saya beralih di antara mereka, saya hanya ALT + TAB, jadi saya tidak perlu pintas untuk setiap instance dari Putty - Aku hanya perlu jalan pintas yang selalu membuka baru contoh dari Putty, tidak peduli berapa banyak jendela Putty saya sudah sudah terbuka. Apakah hanya memanggil "run c: \ tools \ putty \ putty.exe" langsung dari hotkey yang ditugaskan untuk melakukan ini?
Doktor J
@DoktorJ: Oh! Iya. Itulah tepatnya yang akan Anda lakukan. Meskipun saya pikir Anda dapat menetapkan tombol pintas di properti pintas Windows juga. Saya berasumsi Anda dimaksudkan untuk Caps+1menunjuk ke contoh spesifik Putty (yang lebih baik dari AltTab menurut saya :)).
yhw42
3

Alternatif lain untuk meluncurkan program Anda secara cepat dan intuitif:

Peluncuran

Launchy adalah utilitas windows dan linux gratis yang dirancang untuk membantu Anda melupakan menu awal, ikon di desktop, dan bahkan pengelola file Anda.

Launchy mengindeks program di menu awal Anda dan dapat meluncurkan dokumen, file proyek, folder, dan bookmark Anda hanya dengan beberapa penekanan tombol!

teks alternatif

Gauthier
sumber
Ini terlihat seperti pencarian menu mulai Win7.
Theo Belaire
@ Tyr: benar. Saya mulai menggunakannya di Windows XP, tetapi terus melakukannya di Win7. Saya belum pernah menggunakan pencarian menu mulai, tetapi kesan saya adalah Launchy masih lebih cepat. Saya mungkin salah tentang itu.
Gauthier
2

Sayangnya 6 tahun kemudian dengan Windows 10 masalah yang sama ada, dan dengan pembaruan Windows 10 baru-baru ini saya menemukan bahwa beberapa cara pintas / program tidak lagi idempoten ! Terutama Putty di mana saya memiliki beberapa pintasan untuk sesi yang sama.

Jadi saya menggunakan AutoHotKey dan memodifikasi fungsi yang dibagi dalam utas ini (berdasarkan artikel ini di LifeHacker ) sehingga menggunakan file INI untuk melacak setiap pintasan. Ini tidak menggunakan Windows Title dari setiap program karena itu dapat berubah di Putty jika Anda menggunakan layar atau SSH ke server lain, fitur yang ingin saya pertahankan!

Juga termasuk fungsi "DeleteINIEntry ()" yang dapat Anda buat pintasan untuk menghapus entri UniqueName dari file INI. Atau Anda bisa mengedit dan mengubah file secara manual.

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

Jika Anda tidak ingin jendela untuk Minimalkan maka cukup komentar (tambahkan a;) ke baris WinMinimize dan itu hanya akan tetap fokus pada jendela aktif.

agalest
sumber
1

Ini bukan aktivitas yang tidak terkait, explorer adalah proses yang menangani pintasan ini.

Ada beberapa utilitas (mis. Http://www.vsisystems.com/keyboardshortcuts.htm ) yang dimaksudkan memiliki fungsi ini, tetapi saya tidak tahu apakah ada di antara mereka yang akan menyelesaikan masalah kecepatan.

Ofir
sumber
1

Jika Explorer sibuk maka tidak dapat menangani pintasan, maka diperlukan program lain.

Peluncur sederhana dan efisien adalah PS Hot Launch VVL :

Ini adalah utilitas gratis yang memungkinkan Anda untuk menentukan tombol pintas Anda sendiri sehingga menekan satu tombol dapat meluncurkan aplikasi, memasukkan teks yang biasa digunakan, mengubah volume audio Anda, atau apa saja. Program ini membutuhkan Win95 / 98 / ME atau WinNT / 2000 / XP, dan merupakan pemain yang sangat baik bahkan pada mesin yang lambat. PS Hot Launch adalah alternatif yang sempurna untuk menu Start dan panel Quick Launch.

gambar

harrymc
sumber