Tasti di scelta rapida personalizzati per Windows affidabili?


9

Ho tasti di scelta rapida globali di Windows assegnati a diverse istanze cmd.exe diverse. Lo faccio creando collegamenti a cmd.exe sul mio desktop e assegnando a ciascuno un tasto di scelta rapida univoco (ad esempio, CTRL + MAIUSC + U). Roba piuttosto semplice. Sto usando Win2K8 (R1 e R2).

Funziona bene ... il più delle volte. Ma con irritante regolarità, a volte no. O funzionerà con un lungo ritardo (molti secondi). Non importa quale app abbia attualmente il focus (può anche essere uno dei prompt dei comandi). Non importa quali tasti assegnare (ho provato alcune varianti di WIN, CTRL e SHIFT). Ho notato che questo è spesso, ma non sempre, correlato con explorer.exe che lotta in un modo o nell'altro (diciamo, una finestra di explorer aperta a una condivisione di file che non è disponibile o che un'app non risponde o altro). In altre parole, la gestione dei tasti di scelta rapida sembra essere molto sensibile alle attività di sistema non correlate. Nota che ogni volta che ho questo problema, posso sempre ALT + TAB sulla finestra che voglio raggiungere, ma è noioso.

Uso le scorciatoie per queste finestre di comando centinaia di volte al giorno, quindi anche un tasso di errore dell'1% diventa davvero fastidioso.

C'è un modo per risolvere questo problema o c'è qualche utility di terze parti che intercetterà AFFIDABILE combinazioni di tasti personalizzati per focalizzare l'attenzione su qualsiasi app che voglio, in modo indipendente dalle altre attività di sistema?

APPENDICE:

Esiste una proprietà delle scorciatoie di Windows che non vorrei perdere se si passa a uno strumento di scelta rapida di terze parti: le scorciatoie di Windows sono idempotenti. Dopo aver avviato un collegamento ad alcune app, premere nuovamente il tasto di scelta rapida per accedere al processo già avviato: non avvia un nuovo processo.

Risposte:


7

Usa il tasto Autohot. Il linguaggio di scripting non è standard e può essere difficile da imparare, ma se tutto ciò che vuoi fare è avviare programmi in modo affidabile, è semplice. Inoltre puoi basare le scorciatoie sul tasto Windows! Utilizzare il seguente script di esempio e modificarlo in base alle proprie esigenze. (Le righe che iniziano con ;sono commenti.)

;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

Salvalo come file .ahk sul desktop, installa autohotkey ed eseguilo .

Ogni volta che si preme una qualsiasi combinazione di tasti, AutoHotkey eseguirà la scansione di questo script. Se corrisponde a una qualsiasi delle combinazioni di tasti che precedono a ::, eseguirà il comando successivo. Se manca l'istruzione return, l'AHK continuerà a scansionare lo script alla ricerca di corrispondenze dopo aver eseguito l'istruzione. Le combinazioni di tasti sono descritte di seguito.

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

Puoi usarli in qualsiasi combinazione con le lettere della tua tastiera. Una combinazione che trovo estremamente utile è la seguente.

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

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

Questo è Alt + `e Win +`. Quando questo script è in esecuzione e premo alt + `, lo script invia ctrl + F4. Win + `diventa alt + F4.

Autohotkey è fondamentalmente il suo linguaggio di programmazione. Ho creato degli script che simulano il sistema dei "Rocker Gestures". Ho GMail come scorciatoie per la mia email. Se passi il tempo ad imparare alcuni dei suoi trucchi, puoi impazzire con esso. Lifehacker ha un sacco di script utili per Autohotkey. Divertiti!


3
Hmm - una caratteristica importante del tasto di scelta rapida di Windows su cui faccio affidamento è la sua idempotenza. La prima volta che premo CTRL + MAIUSC + U per visualizzare un determinato prompt, avvia cmd.exe. La prossima volta che premo quella combo, se quel cmd.exe è ancora in esecuzione, lo porta semplicemente in primo piano, invece di avviare un'altra istanza (che è ciò che fa il comando di esecuzione di Autohotkey). C'è un modo per farlo facilmente con AHK?
Peter Baer,

3

Ecco come utilizzo AutoHotKey in modo tale da soddisfare il tuo requisito idempotente .

Ad esempio, ho collegato Caps Lock+ aa una finestra di Firefox su Stack Overflow, Caps Lock+ sa Firefox su Super User e Caps Lock+ da un prompt dei comandi.

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

Puoi modificare la modalità di corrispondenza del titolo in modo che sia il più restrittivo di cui hai bisogno. Se avessi un altro tasto di scelta rapida corrispondente su "Mozilla Firefox" (invece di "Super User", ad esempio), scorrerebbe tutte le mie istanze di Firefox, poiché ognuna ha quel testo nel titolo della finestra e l'ho impostato per corrispondere al testo ovunque nel titolo.

Questo script è fortemente basato su questo articolo di LifeHacker.


Come può questo script essere modificato per NON essere idempotente? In particolare, desidero più istanze di un programma se premo i tasti di scelta rapida (sto eseguendo putty e devo essere in grado di connettermi a più di 4 server in qualsiasi momento e non voglio raggiungere il mouse )
Doktor J,

Se nel titolo della finestra è presente un testo specifico e univoco per ciascuna istanza, è possibile assegnare tasti di scelta rapida corrispondenti a quel testo. Vedi Caps+ae Caps+ssopra per due diverse istanze di firefox, @DoktorJ
yhw42,

E se non avessi mai voluto che corrispondesse? Quando passo da una all'altra, ho solo ALT + TAB, quindi non ho bisogno di scorciatoie per ogni istanza di PuTTY - ho solo bisogno di una scorciatoia che apre sempre una nuova istanza di PuTTY, indipendentemente da quante finestre PuTTY ho già avere aperto. La chiamata "Esegui c: \ tools \ putty \ putty.exe" direttamente dal tasto di scelta rapida assegnato farà questo?
Doktor J,

@DoktorJ: Oh! Sì. È esattamente così che lo faresti. Anche se penso che sia possibile assegnare tasti di scelta rapida anche nelle proprietà dei collegamenti di Windows. Avevo supposto che intendessi avere un Caps+1punto su un'istanza specifica di PuTTY (che è meglio di AltTab secondo me :)).
yhw42,

3

Un'altra alternativa per avviare i tuoi programmi in modo rapido e intuitivo:

Launchy

Launchy è un'utilità gratuita per Windows e Linux progettata per aiutarti a dimenticare il menu di avvio, le icone sul desktop e persino il file manager.

Launchy indicizza i programmi nel menu di avvio e può avviare documenti, file di progetto, cartelle e segnalibri con pochi tasti!

testo alternativo


Sembra la ricerca del menu Start di Win7.
Theo Belaire,

@Tyr: lo fa. Ho iniziato a usarlo in Windows XP, ma continuo a farlo in Win7. Non ho usato molto la ricerca nel menu di avvio, ma la mia impressione è che Launchy sia ancora più veloce. Potrei sbagliarmi su questo però.
Gauthier,

2

Purtroppo 6 anni dopo con Windows 10 esistono gli stessi problemi e con un recente aggiornamento di Windows 10 ho scoperto che alcune scorciatoie / programmi non sono più idempotenti ! Soprattutto Putty dove ho più scorciatoie per la stessa sessione.

Quindi uso AutoHotKey e ho modificato la funzione condivisa in questo thread (basato su questo articolo su LifeHacker ) in modo che utilizzi un file INI per tenere traccia di ogni collegamento. Questo non utilizza il titolo di Windows di ciascun programma in quanto ciò può cambiare in Putty se usi lo schermo o SSH in un altro server, una caratteristica che personalmente voglio mantenere!

È inclusa anche una funzione "DeleteINIEntry ()" per la quale è possibile creare un collegamento per rimuovere una voce UniqueName dal file INI. Oppure puoi semplicemente modificare e cambiare manualmente il file.

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

Se non si desidera ridurre a icona la finestra, commentare semplicemente (anteporre a;) alla riga WinMinimize e rimarrà focalizzata sulla finestra attiva.


1

Non è un'attività non correlata, explorer è il processo che gestisce queste scorciatoie.

Esistono utility (ad es. Http://www.vsisystems.com/keyboardshortcuts.htm ) che pretendono di avere questa funzionalità, ma non so se nessuna di esse risolverà il problema della velocità.


1

Se Explorer è occupato, non può gestire le scorciatoie, quindi è necessario un altro programma.

Un lanciatore semplice ed efficiente è PS Hot Launch VVL :

Questa è un'utilità gratuita che ti consente di definire i tuoi tasti di scelta rapida in modo che una singola pressione di un tasto possa avviare un'applicazione, inserire testo di uso comune, modificare il volume audio o qualsiasi altra cosa. Il programma richiede Win95 / 98 / ME o WinNT / 2000 / XP ed è un eccellente esecutore anche su macchine lente. PS Hot Launch è l'alternativa perfetta al menu Start e al pannello Quick Launch.

Immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.