Digite "Olá, mundo!"


11

Escreva um programa que gere eventos de teclado desse tipo Hello, World!.

Não precisa ser independente de plataforma.

Não pode deixar nenhuma tecla pressionada. Por exemplo, em Java, Robot.KeyPress('H');será Hpressionado, portanto, você deve liberá-lo comRobot.KeyRelease('H');

Você pode assumir que o caps lock está desativado quando o programa é executado. As letras maiúsculas podem ser digitadas pressionando Shift e pressionando a letra ou alternando entre maiúsculas e minúsculas. Para o !, você provavelmente terá que usar o método shift.

O menor código vence.

Respostas:


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

Após aplicar as sugestões de 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++);}

Você pode encurtar alguns. Remova s(apenas inicialize for(c="H..), incremente cno ioctl, main(D)para salvar int. Talvez também remova algumas inclusões (mesmo código O_RDWRe TIOCSTI).
ugoren

@ugoren Obrigado, eu vou experimentá-los :) #
31413 saeedn

Este não é o mais curto. Por que essa é a resposta aceita? (Acho que é uma resposta boa, mas eu só quero saber como funciona o site.)
11684

@ 11684 O autor da resposta mais curta me pediu para não contar, então aceitei a resposta não trivial mais curta.
cardboard_box

Não é necessário chamá- ttylo, apenas funciona se stdin for um tty; nesse caso, 0já é um terminal aberto fd.
Dave

18

AppleScript, 50 bytes

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

Obrigado a marinus pela sugestão.


3
Hã. Parece que você escolheu o idioma certo para o trabalho certo.
23613

Você pode reduzi-lo para tell app"System Events"to keystroke"Hello, World!".
marinus

Droga, eu pensei nisso independentemente ... +1!
11684 11/11/2013

13

Autohotkey, 20 bytes

send Hello, World{!}

Por favor, não conte este. Não quero enganar as pessoas que realmente fizeram isso com um idioma não destinado a enviar pressionamentos de tecla. Esta resposta é apenas para conclusão: P



3

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

Resultado do programa:

C:\My\Directory>type.exe

C:\My\Directory>Hello, World!


1

VBScript, 54 bytes

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


1

Script Ducky para USB Rubber Ducky, 22 bytes

String "Hello, World!"

0

PowerShell, 55 bytes

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


0

Python 3,67 bytes

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

Nenhum módulo chamado pynput no tio

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.