दिलचस्प पोस्ट
पायथन: एक वेरिएबल पर स्ट्रिंग असाइन करने के लिए वार्स () का उपयोग करना PostgreSQL में श्रेणी के अनुसार अधिकतम तिथि समूह वाला आईडी कैसे चुन सकता है? सी # में दिन के समय जोड़ें दिन WIX में ग्रिड्स के लिए सिंटैक्स? एक 1 डी संकीर्ण सरणी में नमी के साथ स्थानीय अधिकतम / न्यूनतम खोजना जावा में चर कास्टिंग करना डिबगर में विशिष्ट पहचान प्रकार के संदर्भ में 3 डी स्थिति को 2 डी स्क्रीन स्थिति में परिवर्तित करना बिटमैप लोड करते समय मेमोरी त्रुटि से बाहर क्या एकटन को एकता कंटेनर का उपयोग करने या इसे आवेदन के माध्यम से पास करने के लिए बेहतर बनाना है? क्या यूनिटी मल्टीप्लेयर सर्विस के लिए भुगतान किए बिना मैं यूनिटी नेटवर्किंग एचएलपीआई का उपयोग कर सकता हूं? आप फेसबुक पेज पर दीवार पर कैसे पोस्ट करते हैं (प्रोफ़ाइल नहीं) आर में प्रिंट आउटपुट में दशमलव अंकों की संख्या को नियंत्रित करना संस्करण विरोध के कारण एसस + कम्पास + संसनी स्थापित नहीं हो सकता jQuery AJAX फ़ॉर्म सबमिट करें

इनो सेटअप में एक Exec'ed प्रोग्राम का आउटपुट कैसे प्राप्त करें?

क्या Exec 'एड एक्जिक्युटेबल के आउटपुट को प्राप्त करना संभव है?

मैं उपयोगकर्ता को एक जानकारी क्वेरी पृष्ठ दिखाना चाहता हूं, लेकिन इनपुट बॉक्स में मैक पते का डिफ़ॉल्ट मान दिखाता है। क्या यह हासिल करने का कोई अन्य तरीका है?

Solutions Collecting From Web of "इनो सेटअप में एक Exec'ed प्रोग्राम का आउटपुट कैसे प्राप्त करें?"

हां, एक फ़ाइल में मानक आउटपुट के रीडायरेक्शन का उपयोग करें:

 [Code] function NextButtonClick(CurPage: Integer): Boolean; var TmpFileName, ExecStdout: string; ResultCode: integer; begin if CurPage = wpWelcome then begin TmpFileName := ExpandConstant('{tmp}') + '\ipconfig_results.txt'; Exec('cmd.exe', '/C ipconfig /ALL > "' + TmpFileName + '"', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); if LoadStringFromFile(TmpFileName, ExecStdout) then begin MsgBox(ExecStdout, mbInformation, MB_OK); { do something with contents of file... } end; DeleteFile(TmpFileName); end; Result := True; end; 

ध्यान दें कि एक से अधिक नेटवर्क एडेप्टर हो सकते हैं, और इसके परिणामस्वरूप कई मैक पते चुन सकते हैं।

मुझे ऐसा करना था (कमांड लाइन कॉल निष्पादित और परिणाम प्राप्त) और एक अधिक सामान्य समाधान के साथ आया था

यह अजीब बग को भी ठीक करता है यदि उद्धृत पथ cmd.exe लिए /S ध्वज का उपयोग करके वास्तविक कॉल में उपयोग किया जाता है।

 { Exec with output stored in result. } { ResultString will only be altered if True is returned. } function ExecWithResult(const Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ResultCode: Integer; var ResultString: String): Boolean; var TempFilename: String; Command: String; begin TempFilename := ExpandConstant('{tmp}\~execwithresult.txt'); { Exec via cmd and redirect output to file. Must use special string-behavior to work. } Command := Format('"%s" /S /C ""%s" %s > "%s""', [ ExpandConstant('{cmd}'), Filename, Params, TempFilename]); Result := Exec(ExpandConstant('{cmd}'), Command, WorkingDir, ShowCmd, Wait, ResultCode); if not Result then Exit; LoadStringFromFile(TempFilename, ResultString); { Cannot fail } DeleteFile(TempFilename); { Remove new-line at the end } if (Length(ResultString) >= 2) and (ResultString[Length(ResultString) - 1] = #13) and (ResultString[Length(ResultString)] = #10) then Delete(ResultString, Length(ResultString) - 1, 2); end; 

उपयोग:

 Success := ExecWithResult('ipconfig', '/all', '', SW_HIDE, ewWaitUntilTerminated, ResultCode, ExecStdout) or (ResultCode <> 0); 

सभी लाइनों को प्राप्त करने के लिए परिणाम को एक TStringList ऑब्जेक्ट में भी लोड किया जा सकता है:

 Lines := TStringList.Create; Lines.Text := ExecStdout; { ... some code ... } Lines.Free;