मेरे पास मेरे ऐप में एक अपडेट फ़ंक्शन है - यह इंस्टॉलर को डाउनलोड और सत्यापित करता है (एनएसआईएस के साथ बनाया गया setup.exe)।QProcess :: प्रारंभ करें यूएसी द्वारा अवरुद्ध (एक अद्यतनकर्ता चला रहा है)
QString path = .. absolute path to the downloaded file ...
QProcess::startDetached(path, QStringList());
यह XP पर ठीक काम करता है - लेकिन विस्टा और Win7 पर, कुछ भी नहीं एक बार डाउनलोड पूरा होता है: वास्तव में अद्यतन शुरू करने के लिए, मैं बस कर रहे हैं। अगर मैं डाउनलोड किए गए अपडेट पर ब्राउज़ करता हूं और इसे मैन्युअल रूप से चलाता हूं, तो यह ठीक काम करता है। मुझे लगता है कि क्या हो रहा है यह है कि यूएसी CreateProcess समय पर इंस्टॉलर को अवरुद्ध कर रहा है, लेकिन यह वह जगह है जहां मेरा ज्ञान समाप्त हो जाता है।
अतिरिक्त जटिलता - जब मैं कमांड लाइन से डीबग बिल्ड चला रहा हूं, ऊपर दिए गए चरणों - मुझे यूएसी प्रॉम्प्ट मिलता है और इंस्टॉलर चला सकता है। यह रिलीज बनाता है, प्रारंभ मेनू/शॉर्टकट का निर्माण शुरू किया, जिसमें समस्या है - मुझे लगता है कि कमांड शैल से चलते समय ऑथ टोकन में कोई अंतर है।
runas क्रिया का प्रयोग यूएसी ऊंचाई _force_ जाएगा, यदि आप एक क्रिया निर्दिष्ट नहीं करते , ShellExecute इसे अपने आप पर समझ जाएगा ... – Anders
सही, अतिरिक्त जानकारी के लिए धन्यवाद। – ismail