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.

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

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.


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



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!


1

VBScript, 54 byte

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


1

Ducky Script untuk USB Rubber Ducky, 22 byte

String "Hello, World!"

0

PowerShell, 55 byte

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


0

Python 3,67 byte

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

Tidak ada modul bernama pynput di tio

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.