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.

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

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.


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.



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!


1

VBScript, 54 Bytes

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

1

Tcl, 46 Bytes

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

Erwarten Sie 29 Bytes

spawn bash;send Hello,\ World

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

0

PowerShell, 55 Byte

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


0

Python 3,67 Bytes

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

Kein Modul namens pynput auf tio

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.