Tapez "Bonjour tout le monde!"

11

Écrivez un programme qui génère des événements de clavier de type Hello, World!.

Il ne doit pas être indépendant de la plate-forme.

Il ne peut laisser aucune touche enfoncée. Par exemple, en Java, Robot.KeyPress('H');laissera Happuyé, vous devez donc le libérer avecRobot.KeyRelease('H');

Vous pouvez supposer que le verrouillage des majuscules est désactivé lorsque votre programme est exécuté. Les majuscules peuvent être saisies en maintenant la touche Maj enfoncée et en appuyant sur la lettre, ou en basculant le verrouillage des majuscules. Pour le !, vous devrez probablement utiliser la méthode shift.

Le code le plus court gagne.

boîte en carton
la source

Réponses:

9

C (Linux), 186 octets

#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);}

Après avoir appliqué les suggestions d'Ugoren:

111 octets

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++);}
saeedn
la source
Vous pouvez en raccourcir. Supprimer s(juste initialiser for(c="H..), incrémenter cdans ioctl, main(D)pour sauvegarder int. Peut-être aussi supprimer certaines inclusions (même hard-code O_RDWRet TIOCSTI).
ugoren
@ugoren Merci, je vais les essayer :)
saeedn
Celui-ci n'est pas le plus court. Pourquoi est-ce la réponse acceptée? (Je pense que c'est une bonne réponse, mais je veux juste savoir comment fonctionne le site.)
11684
@ 11684 L'auteur de la réponse la plus courte m'a demandé de ne pas le compter, j'ai donc plutôt accepté la réponse non triviale la plus courte.
cardboard_box
Pas besoin de l'appeler ttyne fonctionne que si stdin est un tty, auquel cas, 0est déjà un terminal ouvert fd.
Dave
18

AppleScript, 50 octets

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

Merci à marinus pour la suggestion.

grc
la source
3
Huh. On dirait que vous avez choisi la bonne langue pour le bon travail.
cardboard_box
Vous pouvez le raccourcir en tell app"System Events"to keystroke"Hello, World!".
marinus
Merde, j'y ai pensé indépendamment ... +1!
11684
13

Autohotkey, 20 octets

send Hello, World{!}

Veuillez ne pas compter celui-ci. Je ne veux pas tromper les gens qui l'ont fait avec une langue qui n'est pas destinée à envoyer des touches. Cette réponse est juste pour l'achèvement: P

beary605
la source
3

Emacs Lisp, 34 octets

(execute-kbd-macro"Hello, World!")

Jordon Biondo
la source
3

C dans Windows 7, 201 octets

#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}}

Résultat du programme:

C:\My\Directory>type.exe

C:\My\Directory>Hello, World!
boîte en carton
la source
1

AutoIt3, 21 octets

Send("Hello, World!")
jdstankosky
la source
virgule manquante! Il s'agit en fait de 21 caractères
Poignée de porte
Où est censée être une virgule? Modifier, tant pis, lol.
jdstankosky
1

VBScript, 54 octets

createobject("wscript.shell").sendkeys "Hello, World!"
afuous
la source
1

Tcl, 46 octets

package r Expect;spawn bash;send Hello,\ World

Attendre, 29 octets

spawn bash;send Hello,\ World
Johannes Kuhn
la source
J'ai essayé de faire la version Tk, mais a échoué: fichier avec des trucs pastebin.ca/3897417
sergiol
1

Ducky Script pour USB Rubber Ducky, 22 octets

String "Hello, World!"
Slayter
la source
0

PowerShell, 55 octets

(New-Object -c wscript.shell).sendkeys('Hello, World!')
Rynant
la source
0

InstantEXE 3.0, 20 octets

Keys "Hello, World!"
Timtech
la source
0

Python 3,67 octets

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

Aucun module nommé pynput sur tio

Vedant Kandoi
la source