Wpisz „Witaj, świecie!”


11

Napisz program, który generuje zdarzenia klawiatury tego typu Hello, World!.

Nie musi być niezależny od platformy.

Nie pozostawia naciśniętych klawiszy. Na przykład w Javie Robot.KeyPress('H');pozostawisz Hwciśnięty, więc musisz go zwolnićRobot.KeyRelease('H');

Możesz założyć, że Caps Lock jest wyłączony po uruchomieniu programu. Wielkie litery można pisać, przytrzymując klawisz Shift i naciskając literę, lub naciskając klawisz Caps Lock. Do tego !prawdopodobnie będziesz musiał użyć metody shift.

Najkrótszy kod wygrywa.

Odpowiedzi:


9

C (Linux), 186 bajtów

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

Po zastosowaniu sugestii ugorena:

111 bajtów

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

Możesz skrócić trochę. Usuń s(tylko initialize for(c="H..), przyrost cw ioctl, main(D)aby zapisać int. Może także usuń niektóre dołączenia (nawet na stałe O_RDWRi TIOCSTI).
ugoren,

@ugoren Dzięki, spróbuję je :)
saeedn

Ten nie jest najkrótszy. Dlaczego jest to akceptowana odpowiedź? (Myślę, że to ładna odpowiedź, ale chcę tylko dowiedzieć się, jak działa strona.)
11684

@ 11684 Autor najkrótszej odpowiedzi poprosił mnie, abym jej nie liczył, więc zamiast tego zaakceptowałem najkrótszą nietrywialną odpowiedź.
cardboard_box

Nie trzeba go wywoływać tty, działa tylko wtedy, gdy stdin jest tty, w takim przypadku 0jest już otwartym terminalem fd.
Dave

18

AppleScript, 50 bajtów

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

Dzięki marinus za sugestię.


3
Huh Wygląda na to, że wybrałeś odpowiedni język dla właściwej pracy.
cardboard_box

Możesz to skrócić tell app"System Events"to keystroke"Hello, World!".
marinus

Cholera, myślałem o tym niezależnie ... +1!
11684

13

Autohotkey, 20 bajtów

send Hello, World{!}

Proszę nie liczyć tego. Nie chcę oszukiwać ludzi, którzy to zrobili za pomocą języka nieprzeznaczonego do wysyłania naciśnięć klawiszy. Ta odpowiedź jest właśnie do uzupełnienia: P



3

C w Windows 7, 201 bajtów

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

Wynik programu:

C:\My\Directory>type.exe

C:\My\Directory>Hello, World!


1

VBScript, 54 bajty

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



0

PowerShell, 55 bajtów

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


0

Python 3,67 bajtów

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

Brak modułu o nazwie pynput na tio

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.