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.

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

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.


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



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!


1

VBScript, 54 octets

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

1

Tcl, 46 octets

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

Attendre, 29 octets

spawn bash;send Hello,\ World

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!"

0

PowerShell, 55 octets

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


0

Python 3,67 octets

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

Aucun module nommé pynput sur tio

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.