2009-06-10 6 views
12

Ad esempio, si preme Ctrl + V e si inserisce il contenuto del buffer nella finestra. Come posso creare i miei hotkey in questo modo? Ci scusiamo per la domanda noobish.Qual è il modo più semplice per creare un tasto di scelta rapida per Windows?

+0

Non è una domanda noobish, ma abbiamo bisogno di maggiori dettagli. Stai chiedendo il tuo uso personale, ad esempio, assegna un tasto di scelta rapida per avviare firefox? O per un'applicazione Windows che stai scrivendo. – Alan

+0

Dipende da cosa vuoi fare con il tasto di scelta rapida. Ad es. hai un tasto di scelta rapida per avviare un programma? Oltre a questo, penso che avresti bisogno di un programma personalizzato per eseguire la "registrazione" hot-key per te. – kizzx2

+1

L'esempio che si fornisce, Ctrl + V non è un tasto di scelta rapida ma un acceleratore di comando. I tasti di scelta rapida si riferiscono generalmente a scorciatoie da tastiera registrate globalmente mentre gli acceleratori di comando sono scorciatoie da tastiera di processo. –

risposta

0

In primo luogo, benvenuto a Stack Overflow!

In secondo luogo, questo è un programma da cosa programma. L'unica ragione che Ctrl + C o Ctrl + V opere dei diversi programmi è perché v'è il supporto del sistema operativo per appunti e molti programmi seguono la convenzione di usare Ctrl + C o Ctrl +V. Nei tuoi programmi, puoi associare i tasti come preferisci! Per maggiori dettagli, avremo bisogno di maggiori informazioni sul tuo programma.

Se si vuole fare in tasti di scelta rapida effettivi per Windows stesso, io non sono sicuro di come (e nemmeno se si è in grado) per rendere i propri tasti di scelta rapida. Potresti voler esaminare AutoIt, che è un programma gratuito che può fare qualsiasi cosa tu voglia usare un tasto di scelta rapida, come ad esempio fare clic sui menu, ecc.

+0

Grazie! Il risultato di cui ho bisogno è il seguente: si esegue il programma e ogni volta che si utilizzano nuovi tasti di scelta rapida (ad esempio, si scrive nel pad o in qualsiasi altro), il programma esegue ciò che è prescritto per tale tasto di scelta rapida. –

+0

Allora vuoi i tasti di scelta rapida globali. Si desidera utilizzare RegisterHotKey nell'API Win32 come indicato in seguito. – samoz

+0

Grazie a tutti e due! Penso di aver capito il punto. –

5

Tasti di scelta rapida per processo come Ctrl + V sono solitamente definiti in (RC) file di risorse e caricato tramite l'API Win32 LoadAccelerators.

tasti di scelta rapida a livello di Windows

(hotkeys) sono registrati utilizzando l'API Win32 RegisterHotKey.

11

Un ottimo modo per farlo in modo rapido e semplice è con un linguaggio di script che si concentra sulla programmazione macro. Il mio preferito è AutoIt come si dice in una clip dal file di aiuto AutoIt ...

AutoIt è stato inizialmente progettato per PC "roll out" situazioni in modo affidabile automatizzare e configurare migliaia di PC. Nel tempo è diventato un potente linguaggio che supporta le espressioni complesse , le funzioni utente, i loop e tutto ciò che gli sceneggiatori veterani dello si aspettavano.

La scrittura di un'applicazione hotkey in AutoIt non potrebbe essere più semplice. Ad esempio, per qualche ragione (per oscura menzione) ti piacerebbe Alt + Q per reagire come tasto 7 del tastierino numerico in una particolare situazione, probabilmente così non devi raggiungere attraverso la tastiera per questo. Ecco alcuni codice che lo fa ...

Func _num7() 
    Send("{numpad7}") 
EndFunc 

HotKeySet("!{q}","_num7") 

While 1 
    sleep(10) 
WEnd 

Se questo non è abbastanza dritto in avanti il ​​file di aiuto AutoIt e forums sono molto utili. Per non parlare di (molto) pochi sviluppatori di AutoIt sono disponibili su SO se si finisce con domande specifiche su AutoIt.

Nell'esempio sopra si consente di dire che si desidera che i tasti di scelta rapida siano attivi solo quando una particolare applicazione era in uso in modo da non interferire con altri tasti di scelta rapida. Questo codice avrebbe realizzato proprio questo.

; The comment character in AutoIt is ; 
Local $inTargetProg = False 

Func _num7() 
    Send("{numpad7}") 
EndFunc 

While 1 
    If WinActive("Target Application Window Title") and Not $inTargetProg Then 
     HotKeySet("!{q}","_num7") ; binds Alt+Q to the _num7() function 
     $inWC3 = True 
    EndIf 

    If Not WinActive("Target Application Window Title") and $inTargetProg Then 
     HotKeySet("!{q}") ; UnBind the hotkey when not in use 
     $inWC3 = False 
    EndIf 

    sleep(5) 
WEnd 
+2

Nice exmaples! Penserò cosa mi va meglio. Comunque grazie. –

+1

Meraviglioso! spero ti piaccia AutoIt! – Copas

+1

AutoIT davvero scricchiola –

2

È possibile creare un semplice tasto di scelta rapida di Windows mediante la creazione di un collegamento e quindi assegnare un tasto di scelta rapida ad esso. Ho fatto questo per l'avvio di alcune app da riga di comando con parametri. Il seguente collegamento spiega l'utilizzo di un tasto di scelta rapida per un'app per silenziare il volume: Mute

Basta sostituire il Target: e il tasto di scelta rapida: nelle proprietà di collegamento con tutto ciò che è necessario per i propri scopi.

5

Sto usando AutoHotkey al lavoro per la parte migliore di un anno.

Ho appena salvato il seguente file nella cartella di avvio di Windows.

keyboard_shortcuts.ahk

#SingleInstance force 
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. 
SendMode Input ; Recommended for new scripts due to its superior speed and reliability. 
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. 
Menu, Tray, Icon, Shell32.dll, 44 

; Starting Directory for cmd.exe 
EnvGet, HOMEDRIVE, HOMEDRIVE 
EnvGet, HOMEPATH, HOMEPATH 

#i:: Run, notepad 
#f:: Run, firefox 
#c:: Run, cmd /k, %HOMEDRIVE%%HOMEPATH% 
#m:: Run, mailto: 
#b:: Run, mailto:[email protected] 

"#b" significa Winkey + B

"Run, mailto: [email protected]" aprire un nero email al mio capo

#b:: Run, mailto:[email protected] 
+0

Grazie mille. Possiamo fare lo stesso con Ctrl, i tasti Alt –

1

Ok ... il modo più semplice, ad esempio sul suo desktop, è possibile utilizzare il comando accelerata dal tasto destro del mouse sull'icona il tasto> Proprietà> scorciatoia; Fare clic su uno spazio vuoto e sembrerà come non succede nulla, ma questo è quando si assegna il vostro "hotkey" Ho usato Maiusc + e ogni volta che combino Maiusc + Firefox apre.

1

sceneggiatura semplice con le finestre senza software di terze parti required.just salvare come .vbs file e fare doppio click

currentDirectory = left(WScript.ScriptFullName,(Len(WScript.ScriptFullName))-(len(WScript.ScriptName))) 

Set objShell = WScript.CreateObject("WScript.Shell") 
Set lnk = objShell.CreateShortcut(currentDirectory & "search.LNK") 
lnk.TargetPath = currentDirectory & "search.bat" 
lnk.Arguments = "" 
lnk.Description = "Abiram's search" 
lnk.HotKey = "SHIFT+CTRL+C" 
lnk.WindowStyle = "7" 
lnk.WorkingDirectory = currentDirectory 
lnk.Save 
'Clean up 
Set lnk = Nothing 

Modificare il lnk.TargetPath per includere il file exe o un file batch per essere chiamato.

+0

Questo è intelligente e semplice. In pratica stai creando un file di collegamento in un file batch a cui assegni un tasto di scelta rapida. –