Estoy trabajando en los accesos directos en C#. Estoy de éxito en la aplicación de las teclas Ctrl, Alt y Shift con SendKeys.

Como este;

Ctrl + C:

System.Windows.Forms.SendKeys.SendWait("^c");

o Alt + F4:

System.Windows.Forms.SendKeys.SendWait("%{F4}");

Pero no puedo enviar «Tecla de Windows» con SendKeys. Traté de ex: Ganar + E : .SendWait("#e"), pero no está funcionando. ¿Qué debo usar en lugar de «#»?

Gracias.

  • Tecla de Windows es en realidad equivalente a la de un CTRL + ESC, ¿has probado con eso?
  • La comisión de servicio. Es SendSystemKeys «{Ctrl+Esc}»
  • Sí, traté de que con .SendWait(«^{ESC}») pero que no funciona demasiado. ¿Hay algún código incorrecto en esta sintaxis?
  • Proceso.Inicio(«explorer.exe»);
  • Win + E , es sólo una muestra. Imagina que voy a necesitar Win + R (Ejecutar) o Win + L.
InformationsquelleAutor nuriaycan | 2012-04-28

4 Comentarios

  1. 22

    ACEPTAR resulta lo que realmente desea es este: http://inputsimulator.codeplex.com/

    Que ha hecho todo el trabajo duro de la exposición de los Win32 SendInput métodos para C#. Esto le permite enviar directamente la tecla de windows. Esto está probado y funciona:

    InputSimulator.SimulateModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.VK_E);

    Nota, sin embargo, que en algunos casos, usted desea específicamente para enviar la clave a la aplicación (como ALT+F4), en cuyo caso el uso de la Form método de la biblioteca. En otros, se desea enviar al OS en general, el uso de los anteriores.


    De edad

    Mantener esta aquí para referencia, no va a funcionar en todos los sistemas operativos, y no siempre se comportan como quieras. Tenga en cuenta que usted está tratando de enviar estas pulsaciones de teclas para la aplicación y el sistema operativo normalmente intercepta temprana. En el caso de Windows 7 y Vista, demasiado pronto (antes de la E es, enviado).

    SendWait("^({ESC}E)") o Send("^({ESC}E)")

    Nota desde aquí: http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.aspx

    Para especificar que cualquier combinación de las teclas SHIFT, CTRL y ALT debe ser considerado
    hacia abajo, mientras que varios otros se presionan las teclas, incluya el código para los
    teclas entre paréntesis. Por ejemplo, para especificar que se mantenga presionada la tecla MAYÚS mientras
    Se presiona E y C, utilice «+(EC)». Para especificar que se mantenga presionada la tecla MAYÚS mientras
    Se presiona E, seguido por C sin DESPLAZAMIENTO, utilice «+CE».

    Nota que desde que usted desea ESC y (decir) E presiona al mismo tiempo, debe encerrar entre corchetes.

    • Fresco, su gravatar es casi idéntica a la de la OPs. 😛
    • Aquí es lo que yo realmente quiero. Muchas gracias por su respuesta, muy agradecido!
    • de entrada simulador requiere que haga referencia a la Dll en excel derecho?
    • Cómo enviar la clave para una ventana específica? Por ejemplo, quiero enviar el Winkey a una aplicación en pantalla completa y sus activos. No está funcionando de la manera que necesito. Gracias!
  2. 0

    descarga InputSimulator de paquete de nuget.

    a continuación, escribe:

            var simu = new InputSimulator();
            simu.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.VK_E);

    en mi caso para crear nuevos vertial escritorio, 3 teclas necesarias y un código como este(tecla de windows + ctrl + D):

            simu.Keyboard.ModifiedKeyStroke(new[] { VirtualKeyCode.LWIN, VirtualKeyCode.CONTROL }, VirtualKeyCode.VK_D);
    • Alguna idea de cómo utilizarlo en PowerShell , a través de Add-Tipo ?
    • por favor, consulte esta página:github.com/TChatzigiannakis/InputSimulatorPlus/blob/master/… usted puede ejecutar el comando ejecutar y, a continuación, en ejecutar, escriba cualquier nombre de la aplicación y, a continuación, hacer cualquier cosa que desee.
    • por ejemplo: var sim = new InputSimulator(); sim.Teclado .ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.VK_R) .Sleep(1000) .TextEntry(«bloc de notas») .Sleep(1000) .KeyPress(VirtualKeyCode.De RETORNO) .Sleep(1000) .TextEntry(«Estos…») .TextEntry(«y en 5 segundos.») .Sleep(5000) .ModifiedKeyStroke(VirtualKeyCode.MENÚ, VirtualKeyCode.En el ESPACIO) .KeyPress(VirtualKeyCode.ABAJO) .KeyPress(VirtualKeyCode.De RETORNO);
  3. 0
    SetForegroundWindow( /* window to gain focus */ );
    SendKeys.SendWait("^{ESC}"); //^{ESC} is code for ctrl + esc which mimics the windows key.

Dejar respuesta

Please enter your comment!
Please enter your name here