2009-06-10 10 views
12

Por ejemplo, presione Ctrl + V e inserte el contenido del búfer en la ventana. ¿Cómo puedo crear mis propias teclas de acceso rápido de esa manera? Perdón por la pregunta noobish.¿Cuál es la forma más fácil de hacer una combinación de teclas para Windows?

+0

No es una pregunta noobish, pero necesitamos más detalles. ¿Estás pidiendo tu propio uso, por ejemplo, asignar una tecla de acceso rápido para iniciar Firefox? O para una aplicación de Windows que está escribiendo. – Alan

+0

Eso depende de lo que quieras hacer con la tecla de acceso directo. Por ej. ¿Tiene una tecla de acceso rápido para iniciar un programa? Aparte de eso, creo que necesitaría un programa personalizado para realizar el "registro" de la tecla de acceso rápido para usted. – kizzx2

+1

El ejemplo que das, Ctrl + V no es una tecla de acceso directo sino un acelerador de comando. Las teclas rápidas generalmente se refieren a atajos de teclado registrados globalmente, mientras que los aceleradores de comandos son atajos de teclado por proceso. –

Respuesta

0

Primero, bienvenido a Stack Overflow!

En segundo lugar, esto es algo programa por programa. La única razón por la que Ctrl + C o Ctrl + V obras a través de diferentes programas es porque hay sistemas operativos compatibles para el portapapeles y muchos programas siguen la convención de usar Ctrl + C o Ctrl + V. ¡En sus propios programas, puede enlazar las teclas como quiera! Para obtener más detalles, necesitaremos más información sobre su programa.

Si quieres hacer las teclas de acceso rápido para Windows, no estoy seguro de cómo (ni si puedes) hacer tus propias teclas de acceso rápido. Es posible que desee ver en AutoIt, que es un programa gratuito que puede hacer todo tipo de cosas es posible que desee utilizar una tecla de acceso directo para, como hacer clic de forma automática a través de menús, etc.

+0

¡Gracias! El resultado que necesito es el siguiente: ejecuta el programa y cada vez que usa nuevas teclas de acceso directo (por ejemplo, está escribiendo en el panel o en cualquier otro lugar), el programa ejecuta lo que está prescrito para esa tecla de acceso directo. –

+0

Bueno, entonces quieres teclas rápidas globales. Desea utilizar RegisterHotKey en la API de Win32 como se dice a continuación. – samoz

+0

¡Gracias a ambos! Creo que entiendo el punto. –

5

por proceso atajos de teclado como Ctrl + V se suelen definir en un archivo de recursos (.rc) y se cargan a través de la API de Win32 LoadAccelerators.

Los accesos directos de teclado en toda Windows (teclas rápidas) se registran utilizando la API de Win32 RegisterHotKey.

11

Una forma excelente de hacerlo de forma rápida y sencilla es con un lenguaje de script que se centre en la programación de macros. Mi favorito es AutoIt como se dice en un clip del archivo de ayuda AutoIt ...

AutoIt fue diseñado inicialmente para PC situaciones "roll out" a forma fiable automatizar y configurar miles de PC. Con el tiempo se ha convertido en un poderoso lenguaje que admite expresiones complejas, funciones de usuario, bucles y todo lo demás que esperarían los programadores veteranos .

Escribir una aplicación de teclas rápidas en AutoNo podría ser más fácil. Por ejemplo, digamos por alguna razón (para no mencionarlo) le gustaría Alt + Q reaccionar como tecla numérica 7 en una situación particular posiblemente para que no tenga que tocar el teclado para ello. Aquí hay algo de código que hace que ...

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

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

While 1 
    sleep(10) 
WEnd 

Si eso no es bastante sencillo el archivo de ayuda AutoIt y forums son muy útiles. Sin mencionar que hay (muy) pocos desarrolladores de AutoIt disponibles en SO si terminas con preguntas específicas de AutoIt.

En el ejemplo anterior digamos que solo quería que las teclas rápidas estuvieran activas cuando una aplicación en particular estaba en uso para no interferir con otras teclas rápidas. Este código lograría precisamente eso.

; 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

Buenos ejemplos! Pensaré lo que mejor me sienta. Gracias de todos modos. –

+1

¡Maravilloso! espero que disfrutes de AutoIt! – Copas

+1

AutoIT realmente oscila –

2

Puede crear una tecla rápida simple en Windows creando un atajo y luego asignarle un atajo de teclado. He hecho esto para lanzar algunas aplicaciones de línea de comandos con parámetros. El siguiente enlace explica usando una tecla de acceso directo a una aplicación para silenciar el volumen: Mute

basta con sustituir el destino: y atajos de la tecla: en las propiedades de acceso directo con todo lo que necesita para sus propósitos.

5

He estado usando AutoHotkey en el trabajo durante la mayor parte de un año.

Acabo de guardar el siguiente archivo en mi carpeta de inicio de 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" significaWinkey +B

"Run, mailto: [email protected]" abrir un negro correo electrónico a mi jefe

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

Muchas gracias. ¿Podemos hacer lo mismo con Ctrl, teclas Alt –

1

Ok ... la manera más fácil, por ejemplo En su escritorio, puede usar el comando acelerado haciendo clic con el botón derecho en el icono> propiedades> tecla de método abreviado; Haga clic en el espacio vacío y parecerá que no pasa nada, pero esto es cuando se asigna el "tecla de acceso directo" Solía ​​Shift + y siempre combino Shift + abre Firefox.

1

guión simple con Windows sin software de terceros required.just guardar como archivo .vbs y haga doble clic

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 

Cambiar el lnk.TargetPath incluir su archivo ejecutable o archivo por lotes para ser llamado.

+0

? Es inteligente y simple. Básicamente está creando un archivo de acceso directo a un archivo de proceso por lotes al que asigna una tecla de acceso rápido. –

Cuestiones relacionadas