अब तक प्रतिक्रियाओं के लिए धन्यवाद, लेकिन मुझे अपना स्वयं का समाधान मिला है। मैंने कई अलग-अलग चीजों की कोशिश की, एक vbs स्क्रिप्ट लिखने से, जिसे हस्टार्ट नामक एक स्टैंडअलोन प्रोग्राम के लिए सुझाव दिया गया था। hstart काम किया ... लेकिन यह एक अलग प्रक्रिया बनाता है जो मुझे बहुत पसंद नहीं आया क्योंकि तब मैं इसे सामान्य तरीके से मार नहीं सकता। लेकिन मुझे एक आसान समाधान मिला जिसमें केवल हास्केल कोड की आवश्यकता थी।
पहले से मेरा कोड रन करने के लिए एक साधारण कॉल था कॉमांड, जिसने खिड़की पॉप अप किया था। एक वैकल्पिक फ़ंक्शन जिसका आप उपयोग कर सकते हैं runProcess है जिसमें अधिक विकल्प हैं। Ghc स्रोत कोड फ़ाइल runProcess.c पर देखकर, मैंने पाया कि CREATE_NO_WINDOW ध्वज सेट किया गया है जब आप सभी STDIN, STOUT, और STDERR के लिए रीडायरेक्ट की आपूर्ति करते हैं। तो यही है कि आपको क्या करना है, उन लोगों के लिए रीडायरेक्ट की आपूर्ति करें। मेरा परीक्षण कार्यक्रम इस तरह दिखता है:
import System.Process
import System.IO
main = do
inH <- openFile "in" ReadMode
outH <- openFile "out" WriteMode
runProcess "rsync.bat" [] Nothing Nothing (Just inH) (Just outH) (Just outH)
यह काम किया! कोई कमांड विंडो फिर से नहीं! एक चेतावनी यह है कि मुझे अपनी स्थिति में एसटीडीआईएन घटना के रूप में पढ़ने के लिए आईएच के लिए एक खाली फ़ाइल की आवश्यकता है, इसकी आवश्यकता नहीं थी।
यह प्रश्न फिर से खोलना चाहिए, क्योंकि यह एक "विशिष्ट प्रोग्रामिंग समस्या" के बारे में है, विशेष रूप से हास्केल से पृष्ठभूमि में प्रक्रिया कैसे शुरू करें। – Cirdec
पुन: खोलने की उम्मीद में संपादित/संशोधित। मुझे लगता है कि यह एक उपयोगी सवाल है। मुझे भी लगता है कि इसे – Andre