Geben Sie "Hallo Welt!"

11

Schreiben Sie ein Programm, das Tastaturereignisse vom Typ generiert Hello, World!.

Es muss nicht plattformunabhängig sein.

Es können keine Tasten gedrückt bleiben. In Java Robot.KeyPress('H');wird beispielsweise Hgedrückt gehalten, sodass Sie es mit freigeben müssenRobot.KeyRelease('H');

Sie können davon ausgehen, dass die Feststelltaste deaktiviert ist, wenn Ihr Programm ausgeführt wird. Großbuchstaben können entweder durch Halten der Umschalttaste und Drücken des Buchstabens oder durch Umschalten der Feststelltaste eingegeben werden. Für die !müssen Sie wahrscheinlich die Shift-Methode verwenden.

Der kürzeste Code gewinnt.

Pappschachtel
quelle

Antworten:

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

Nach der Anwendung der Vorschläge von 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++);}
saeedn
quelle
Sie können einige verkürzen. Entfernen s(einfach initialisieren for(c="H..), inkrementieren cin ioctl, um main(D)zu speichern int. Vielleicht auch einige Includes entfernen (sogar Hardcode O_RDWRund TIOCSTI).
Ugoren
@ugoren Danke, ich werde sie versuchen :)
saeedn
Dieser ist nicht der kürzeste. Warum ist das die akzeptierte Antwort? (Ich denke, es ist eine schöne Antwort, aber ich möchte nur erfahren, wie die Website funktioniert.)
11684
@ 11684 Der Autor der kürzesten Antwort hat mich gebeten, sie nicht zu zählen, daher habe ich stattdessen die kürzeste nicht triviale Antwort akzeptiert.
cardboard_box
Es muss nicht aufgerufen werden, ttyes funktioniert nur, wenn stdin ein tty ist. In diesem Fall 0ist stdin bereits ein offenes Terminal fd.
Dave
18

AppleScript, 50 Bytes

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

Danke an Marinus für den Vorschlag.

grc
quelle
3
Huh. Sie haben anscheinend die richtige Sprache für den richtigen Job ausgewählt.
cardboard_box
Sie können es auf kürzen tell app"System Events"to keystroke"Hello, World!".
Marinus
Verdammt, ich habe unabhängig davon gedacht ... +1!
11684
13

Autohotkey, 20 Bytes

send Hello, World{!}

Bitte zählen Sie diesen nicht. Ich möchte Leute, die dies tatsächlich getan haben, nicht mit einer Sprache betrügen, die nicht zum Senden von Tastenanschlägen gedacht ist. Diese Antwort dient nur zur Vervollständigung: P.

beary605
quelle
3

Emacs Lisp, 34 Bytes

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

Jordon Biondo
quelle
3

C in 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}}

Programmergebnis:

C:\My\Directory>type.exe

C:\My\Directory>Hello, World!
Pappschachtel
quelle
1

AutoIt3, 21 Bytes

Send("Hello, World!")
jdstankosky
quelle
fehlendes Komma! Es sind tatsächlich 21 Zeichen
Türknauf
Wo soll ein Komma sein? Bearbeiten, egal, lol.
jdstankosky
1

VBScript, 54 Bytes

createobject("wscript.shell").sendkeys "Hello, World!"
ängstlich
quelle
1

Tcl, 46 Bytes

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

Erwarten Sie 29 Bytes

spawn bash;send Hello,\ World
Johannes Kuhn
quelle
Versucht , die Tk - Version zu tun, aber fehlgeschlagen: Datei mit einigen Sachen pastebin.ca/3897417
sergiol
1

Ducky Script für USB Rubber Ducky, 22 Bytes

String "Hello, World!"
Slayter
quelle
0

PowerShell, 55 Byte

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

InstantEXE 3.0, 20 Bytes

Keys "Hello, World!"
Timtech
quelle
0

Python 3,67 Bytes

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

Kein Modul namens pynput auf tio

Vedant Kandoi
quelle