2012-06-05 8 views
10

द्वारा बुलाए गए एक्सई का रिटर्न वैल्यू कैसे प्राप्त करें शेल्लेक्स्यूट फ़ंक्शन द्वारा एक्सई के रिटर्न वैल्यू को कैसे प्राप्त करें।ShellExecute

ShellExecute(NULL, NULL, TEXT (".\\dpinstx86.exe"), NULL, NULL, SW_SHOWNORMAL); 

उपरोक्त उदाहरण में मुझे "dpinstx86.exe" का वापसी मान चाहिए।

+1

मुझे लगता है कि आप "वापसी मान" द्वारा क्या मतलब सीएमडी से उत्पादन है, जो इस सवाल पते: http://stackoverflow.com/questions/469152/using-shellexecuteex-and-capturing-standard-in आउट-अं। – Ben

उत्तर

19

प्रक्रिया संभाल पाने के लिए ShellExecuteEx का उपयोग करें, और निकास कोड प्राप्त करने के लिए GetExitCodeProcess का उपयोग करें।

SHELLEXECUTEINFO ShExecInfo = {0}; 
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO); 
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS; 
ShExecInfo.hwnd = NULL; 
ShExecInfo.lpVerb = NULL; 
ShExecInfo.lpFile = "c:\\MyProgram.exe";   
ShExecInfo.lpParameters = ""; 
ShExecInfo.lpDirectory = NULL; 
ShExecInfo.nShow = SW_SHOW; 
ShExecInfo.hInstApp = NULL; 
ShellExecuteEx(&ShExecInfo); 
WaitForSingleObject(ShExecInfo.hProcess,INFINITE); 
+1

हैंडल पर * प्रतीक्षा * को मत भूलना। –

+0

कोई भी उदाहरण महान होगा ... – 2vision2

+1

http://www.codeproject.com/Articles/1842/A-newbie-s-elementary-guide-to-spawning-processes ... और hProcess के साथ GetExitCodeProcess() को कॉल करें SHELLEXECUTEINFO के सदस्य। – kol

संबंधित मुद्दे