Cmd लाइन पर एक कुंजी भेजें


नमस्ते
मैं एक बैच फ़ाइल चलाता हूं जो परिवर्तनीय पैरामीटर के साथ एक ही एप्लिकेशन को कई बार चलाता है
प्रत्येक रन के बीच किसी भी कुंजी को दबाने की आवश्यकता होती है
मैं सीएमडी लाइन में स्पेस बार हिट की नकल कैसे करूं?

बैच फ़ाइल इस तरह दिखती है:

सी:
सीडी “सी:\माई ऐप”
“C:\MyApp\MyApp.exe” “1”
“C:\MyApp\MyApp.exe” “5”
“C:\MyApp\MyApp.exe” “0”

“C:\MyApp\MyApp.exe” “1” और “C:\MyApp\MyApp.exe” “5” के बीच
सीएमडी लाइन उपयोगकर्ता की ओर से किसी भी कुंजी दबाने की प्रतीक्षा करती है।
इसलिए मैं इस कुंजी प्रेस को सीएमडी लाइन में लिखना चाहता हूं
कुछ इस तरह:

सी:
सीडी “सी:\माई ऐप”
“C:\MyApp\MyApp.exe” “1”
“प्रेसकी” {“स्पेसबार”}
“C:\MyApp\MyApp.exe” “5”
“प्रेसकी” {“स्पेसबार”}
“C:\MyApp\MyApp.exe” “0”

धन्यवाद!

डीजे4400

मैंने क्या प्रयास किया है:

इसे गूगल कर रहा हूं
सेंडकीज़ कमांड, शायद मैंने इसका गलत इस्तेमाल किया?

समाधान 1

कमांड लाइन से ऐप शुरू करने के बाद आप उसमें कुंजी नहीं भेज सकते: आपके कमांड (या बैच फ़ाइल) का निष्पादन तब तक नहीं होता जब तक आपके द्वारा चलाया गया ऐप बंद नहीं हो जाता।

हालाँकि आप ऐप पर कुंजी भेजने के लिए पाइपलाइनिंग का उपयोग करने में सक्षम हो सकते हैं: पाइपलाइनों के बारे में – पॉवरशेल | माइक्रोसॉफ्ट लर्न[^]

यदि यह आपका ऐप है, जैसा कि आपके उदाहरण से पता चलता है, तो एक बेहतर तरीका यह होगा कि आप अपने ऐप में एक कमांड लाइन स्विच जोड़ें जो इसे “अनअटेंडेड” संचालित करता है – ऐप स्टार्टअप में एक वैश्विक वैरिएबल सेट किया जाता है और हर बार जब आपका ऐप उपयोगकर्ता इनपुट चाहता है तो चेक किया जाता है .

समाधान 3

जैसा कि ग्रिफ़ ने कहा, यदि आपने कंसोल एप्लिकेशन लिखा है, तो आपका सबसे अच्छा विकल्प इसे बदलना है ताकि यह इनपुट के लिए संकेत न दे।

यदि यह ऐसा कुछ नहीं है जिसे आप बदल सकते हैं, तो हो सकता है कि इसमें पहले से ही ऐसा कुछ हो। आपको इसकी आगे जांच करनी चाहिए.

ऐसा न होने पर, आप एक कंसोल एप्लिकेशन लिख सकते हैं जो एप्लिकेशन को एक प्रक्रिया के माध्यम से चलाता है, संकेत का पता लगाता है और उस पर प्रतिक्रिया देता है। यह हमेशा काम नहीं करता, लेकिन आप कोशिश कर सकते हैं.

मैंने इस प्रकार का कार्य किया है: प्रोसेस कम्युनिकेटर[^]

コメント

タイトルとURLをコピーしました