Escriba "¡Hola, mundo!"


11

Escriba un programa que genere eventos de teclado de qué tipo Hello, World!.

No tiene que ser independiente de la plataforma.

No puede dejar ninguna tecla presionada. Por ejemplo, en Java, Robot.KeyPress('H');dejará Hpresionado, por lo que debe liberarlo conRobot.KeyRelease('H');

Puede suponer que el bloqueo de mayúsculas está desactivado cuando se ejecuta su programa. Las letras mayúsculas se pueden escribir manteniendo presionada la tecla Mayús y presionando la letra, o alternando el bloqueo de mayúsculas. Para el !, probablemente tendrás que usar el método shift.

El código más corto gana.

Respuestas:


9

C (Linux), 186 bytes

#include<sys/ioctl.h>
#include<fcntl.h>
#include<stdio.h>
main(){char*s="Hello, World!",d[99],*c;fscanf(popen("tty","r"),"%s",d);int D=open(d,O_RDWR);for(c=s;*c;c++)ioctl(D,TIOCSTI,c);}

Después de aplicar las sugerencias de ugoren:

111 bytes

main(D){char*c,d[99];fscanf(popen("tty","r"),"%s",d);D=open(d,2);for(c="Hello, World!";*c;)ioctl(D,21522,c++);}

Puedes acortar un poco. Eliminar s(solo inicializar for(c="H..), incrementar cen ioctl, main(D)para guardar int. Tal vez también elimine algunas inclusiones (incluso código duro O_RDWRy TIOCSTI).
ugoren

@ugoren Gracias, los probaré :)
saeedn

Este no es el más corto. ¿Por qué es esta la respuesta aceptada? (Creo que es una buena respuesta, pero solo quiero aprender cómo funciona el sitio.)
11684

@ 11684 El autor de la respuesta más corta me pidió que no la contara, por lo que acepté la respuesta no trivial más corta.
cartón_box

No es necesario llamarlo tty, solo funciona si stdin es un tty, en cuyo caso, 0ya es un terminal abierto fd.
Dave

18

AppleScript, 50 bytes

tell app"System Events"to keystroke"Hello, World!"

Gracias a marinus por la sugerencia.


3
Huh Parece que elegiste el idioma correcto para el trabajo correcto.
Cartón_box

Puedes acortarlo a tell app"System Events"to keystroke"Hello, World!".
marinus

Maldita sea, pensé en esto independientemente ... +1!
11684

13

Autohotkey, 20 bytes

send Hello, World{!}

Por favor no cuentes este. No quiero engañar a las personas que realmente han hecho esto con un lenguaje no destinado a enviar pulsaciones de teclas. Esta respuesta es solo para completar: P



3

C en Windows 7, 201 bytes

#include<windows.h>
#include<winable.h>
#define S SendInput(1,&k,28);
int k[7]={1};main(i){char*s="^HELLO, ^WORLD^1";for(i=0;i<16;i++){k[2]=0;if(s[i]>90){k[1]=16;S i++;}k[1]=s[i];S k[2]=2;S k[1]=16;S}}

Resultado del programa:

C:\My\Directory>type.exe

C:\My\Directory>Hello, World!


1

VBScript, 54 bytes

createobject("wscript.shell").sendkeys "Hello, World!"


1

Ducky Script para USB Rubber Ducky, 22 bytes

String "Hello, World!"

0

PowerShell, 55 bytes

(New-Object -c wscript.shell).sendkeys('Hello, World!')


0

Python 3,67 bytes

from pynput.keyboard import*
s=Controller()
s.type("Hello, World!")

Ningún módulo llamado pynput en tio

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.