Ketik "Halo, Dunia!"

11

Tulis program yang menghasilkan acara keyboard yang ketik Hello, World!.

Tidak harus mandiri dari platform.

Itu tidak dapat membiarkan tombol apa pun ditekan. Misalnya, di Jawa, Robot.KeyPress('H');akan dibiarkan Hditekan, jadi Anda harus melepaskannya denganRobot.KeyRelease('H');

Anda dapat berasumsi bahwa caps lock tidak aktif saat program Anda dijalankan. Huruf kapital dapat diketik dengan menahan shift dan menekan huruf, atau dengan mengaktifkan caps lock. Untuk itu !, Anda mungkin harus menggunakan metode shift.

Kode terpendek menang.

kotak kardus
sumber

Jawaban:

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

Setelah menerapkan saran 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++);}
Saeedn
sumber
Anda dapat mempersingkat beberapa. Hapus s(hanya inisialisasi for(c="H..), selisih cdalam ioctl, main(D)untuk menyimpan int. Mungkin juga menghapus beberapa termasuk (bahkan hard-code O_RDWRdan TIOCSTI).
ugoren
@ugoren Terima kasih, saya akan mencobanya :)
saeedn
Yang ini bukan yang terpendek. Mengapa ini jawaban yang diterima? (Saya pikir itu adalah jawaban yang bagus, tetapi saya hanya ingin mempelajari cara kerja situs ini.)
11684
@ 11684 Penulis jawaban terpendek meminta saya untuk tidak menghitungnya, jadi saya menerima jawaban non-sepele terpendek.
cardboard_box
Tidak perlu menyebutnya ttyhanya berfungsi jika stdin adalah tty, dalam hal ini, 0sudah merupakan terminal terbuka fd.
Dave
18

AppleScript, 50 byte

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

Terima kasih kepada marinus atas sarannya.

grc
sumber
3
Hah. Sepertinya Anda memilih bahasa yang tepat untuk pekerjaan yang tepat.
cardboard_box
Anda dapat mempersingkat menjadi tell app"System Events"to keystroke"Hello, World!".
marinus
Sial, saya memikirkan ini secara independen ... +1!
11684
13

Autohotkey, 20 byte

send Hello, World{!}

Tolong jangan hitung yang ini. Saya tidak ingin menipu orang yang benar-benar melakukan ini dengan bahasa yang tidak dimaksudkan untuk mengirim penekanan tombol. Jawaban ini hanya untuk penyelesaian: P

beary605
sumber
3

Emacs Lisp, 34 byte

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

Jordon Biondo
sumber
3

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

Hasil program:

C:\My\Directory>type.exe

C:\My\Directory>Hello, World!
kotak kardus
sumber
1

AutoIt3, 21 byte

Send("Hello, World!")
jdstankosky
sumber
hilang koma! Ini sebenarnya 21 karakter
Gagang Pintu
Di mana seharusnya koma? Edit, tidak apa-apa, lol.
jdstankosky
1

VBScript, 54 byte

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

Tcl, 46 byte

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

Harapkan, 29 byte

spawn bash;send Hello,\ World
Johannes Kuhn
sumber
Mencoba untuk melakukan versi Tk, tetapi gagal: file dengan beberapa hal pastebin.ca/3897417
sergiol
1

Ducky Script untuk USB Rubber Ducky, 22 byte

String "Hello, World!"
Slayter
sumber
0

PowerShell, 55 byte

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

InstantEXE 3.0, 20 byte

Keys "Hello, World!"
Timtech
sumber
0

Python 3,67 byte

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

Tidak ada modul bernama pynput di tio

Vedant Kandoi
sumber