टाइप करें "हैलो, वर्ल्ड!"


11

एक प्रोग्राम लिखें जो कीबोर्ड ईवेंट बनाता है जो टाइप करता है Hello, World!

इसे प्लेटफ़ॉर्म-इंडिपेंडेंट होना ज़रूरी नहीं है।

यह किसी भी कुंजी को दबाया नहीं छोड़ सकता है। उदाहरण के लिए, जावा में, दबाया Robot.KeyPress('H');जाएगा H, इसलिए आपको इसे जारी करना होगाRobot.KeyRelease('H');

आप मान सकते हैं कि जब आपका प्रोग्राम चलाया जाता है तो कैप्स लॉक बंद होता है। कैपिटल लेटर्स को शिफ्ट होल्ड करके और लेटर को दबाकर या कैप लॉक को टॉगल करके टाइप किया जा सकता है। इसके लिए !, आपको संभवतः शिफ्ट विधि का उपयोग करना होगा।

सबसे छोटा कोड जीतता है।

जवाबों:


9

सी (लिनक्स), 186 बाइट्स

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

कुरकुरा के सुझावों को लागू करने के बाद:

111 बाइट्स

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

आप कुछ को छोटा कर सकते हैं। निकालें s(बस इनिशियलाइज़ for(c="H..), वेतन वृद्धि cमें ioctl, main(D)को बचाने के लिए int। हो सकता है कुछ को हटा भी दें (हार्ड-कोड O_RDWRऔर भी TIOCSTI)।
बदसूरत

@ यूगोरन धन्यवाद, मैं उनकी कोशिश करूंगा :)
saeedn

यह सबसे छोटा नहीं है। यह स्वीकृत उत्तर क्यों है? (मुझे लगता है कि यह एक अच्छा जवाब है, लेकिन मैं सिर्फ यह जानना चाहता हूं कि साइट कैसे काम करती है।)
11684

@ 11684 सबसे छोटे उत्तर के लेखक ने मुझे इसे गिनने के लिए नहीं कहा, इसलिए मैंने इसके बजाय सबसे छोटा गैर-तुच्छ उत्तर स्वीकार किया।
कार्डबोर्ड_बॉक्स

ttyयह कहने की आवश्यकता नहीं है कि यह केवल तभी काम करता है जब स्टड एक टटी है, जिस स्थिति में, 0पहले से ही एक खुला टर्मिनल एफडी है।
डेव

18

AppleScript, 50 बाइट्स

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

सुझाव के लिए मारिनस को धन्यवाद।


3
हुह। लगता है कि आपने सही काम के लिए सही भाषा चुनी है।
कार्डबोर्ड_बॉक्स

आप इसे छोटा कर सकते हैं tell app"System Events"to keystroke"Hello, World!"
मारिनस

बेनाम: Damnit, मैं इस स्वतंत्र रूप से सोचा ... +1!
1268 पर 11684

13

ऑटोहोटेक, 20 बाइट्स

send Hello, World{!}

कृपया इसे मत गिनो। मैं उन लोगों को धोखा नहीं देना चाहता जिन्होंने वास्तव में ऐसा किया है जो किस्ट्रोक्स भेजने के लिए नहीं है। यह उत्तर केवल पूरा करने के लिए है: पी



3

सी विंडोज 7, 201 बाइट्स में

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

कार्यक्रम का परिणाम:

C:\My\Directory>type.exe

C:\My\Directory>Hello, World!

1

AutoIt3, 21 बाइट्स

Send("Hello, World!")

गायब अल्पविराम! यह वास्तव में 21 वर्ण है
दरवाज़े

अल्पविराम कहाँ माना जाता है? संपादित करें, कोई बात नहीं, योग्य।
jdstankosky

1

वीबीएसस्क्रिप्ट, 54 बाइट्स

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

1

Tcl, 46 बाइट्स

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

उम्मीद, 29 बाइट्स

spawn bash;send Hello,\ World

Tk संस्करण को करने की कोशिश की, लेकिन विफल रहा: कुछ सामान के साथ फाइल करें pastebin.ca/3897417
23

1

यूएसबी रबड़ डकी के लिए डकी स्क्रिप्ट, 22 बाइट्स

String "Hello, World!"

0

पॉवरशेल, 55 बाइट्स

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


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.