Digita "Hello, World!"


11

Scrivi un programma che genera eventi da tastiera di tipo Hello, World!.

Non deve essere indipendente dalla piattaforma.

Non può lasciare alcun tasto premuto. Ad esempio, in Java, Robot.KeyPress('H');verrà lasciato Hpremuto, quindi è necessario rilasciarlo conRobot.KeyRelease('H');

Si può presumere che il blocco maiuscole sia disattivato quando si esegue il programma. Le lettere maiuscole possono essere digitate tenendo premuto Maiusc e premendo la lettera oppure attivando il blocco maiuscole. Per il !, probabilmente dovrai usare il metodo shift.

Il codice più corto vince.

Risposte:


9

C (Linux), 186 byte

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

Dopo aver applicato i suggerimenti di ugoren:

111 byte

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

Puoi accorciarne un po '. Rimuovi s(basta inizializzare for(c="H..), incrementa cin ioctl, main(D)per salvare int. Forse anche rimuovere alcuni include (anche hard-code O_RDWRe TIOCSTI).
ugoren,

@ugoren Grazie, li proverò :)
Saeedn,

Questo non è il più corto. Perché questa è la risposta accettata? (Penso che sia una bella risposta, ma voglio solo imparare come funziona il sito.)
11684

@ 11684 L'autore della risposta più breve mi ha chiesto di non contarla, quindi ho accettato la risposta non banale più breve.
cardboard_box

Non c'è bisogno di chiamarlo ttyfunziona solo se stdin è un tty, nel qual caso 0è già un terminale aperto fd.
Dave,

18

AppleScript, 50 byte

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

Grazie a Marinus per il suggerimento.


3
Huh. Sembra che tu abbia scelto la lingua giusta per il lavoro giusto.
cardboard_box

Puoi accorciarlo a tell app"System Events"to keystroke"Hello, World!".
Marin

Dannazione, ci ho pensato indipendentemente ... +1!
11684

13

Tasto di scelta rapida, 20 byte

send Hello, World{!}

Per favore, non contare questo. Non voglio ingannare le persone che lo hanno effettivamente fatto con una lingua non pensata per l'invio di sequenze di tasti. Questa risposta è solo per il completamento: P



3

C in Windows 7, 201 byte

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

Risultato del programma:

C:\My\Directory>type.exe

C:\My\Directory>Hello, World!


1

VBScript, 54 byte

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

1

Tcl, 46 byte

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

Aspettatevi, 29 byte

spawn bash;send Hello,\ World

Ho provato a fare la versione Tk, ma non è riuscito: file con alcune cose pastebin.ca/3897417
sergiol

1

Script Ducky per USB Rubber Ducky, 22 byte

String "Hello, World!"

0

PowerShell, 55 byte

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


0

Python 3,67 byte

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

Nessun modulo chiamato pynput su tio

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.