QProcess کے ذریعے شروع کیے جانے والے ڈاؤن لوڈر کے لیے، شروع کرنے سے پہلے ذیلی عمل کا ماحول بنائیں:

auto* download = new QProcess(parent);
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
env.insert("https_proxy", "http://proxy.example:8080");
download->setProcessEnvironment(env);
download->start("curl", {"--head", "https://www.example.com/"});

یہ Qt حصہ موجودہ والد آبجیکٹ، واقعات کے لوپ اور ذیلی عمل کے لیے دستیاب curl کو فرض کرتا ہے۔ چلتے وقت QProcess کو زندہ رکھیں، اور اس کے تکمیل و خرابی کے اشاروں کو ایپلیکیشن میں سنبھالیں۔ پراکسی اسناد مقرر کیے بغیر اس عوامی سائٹ کی جانچ کے لیے، HTTP پراکسی فہرست ذیلی عمل کی پراکسی قدر کے لیے امیدوار HTTP اینڈ پوائنٹس پیش کرتی ہے۔

systemEnvironment سے شروع کرنے پر PATH جیسی وراثتی قدریں محفوظ رہتی ہیں۔ بصورت دیگر خالی ماحول بنا کر ایک پراکسی متغیر شامل کرنے سے وہ دیگر اندراجات رہ جائیں گے۔

متغیر کا نام ہی کلید ہے۔ export ایک shell کمانڈ ہے، نہ اس کلید کا حصہ ہے اور نہ کوئی ایسی قابلِ عمل فائل جسے QProcess پہلے چلائے۔ ماحول کو براہِ راست دینے سے URL کے گرد shell کمانڈ بنانے سے بھی بچا جاتا ہے۔

setProcessEnvironment اس عمل پر لاگو ہوتا ہے جو اس کے بعد شروع ہو۔ یہ پہلے سے چل رہے ذیلی عمل یا Qt ایپلیکیشن شروع کرنے والے shell کا ماحول نہیں بدلتا۔

منتخب کردہ ڈاؤن لوڈر کو یہ متغیر سمجھنا چاہیے۔ یہ مثال curl کی HTTPS درخواست کے لیے چھوٹے حروف والا https_proxy استعمال کرتی ہے اور وراثتی بائی پاس اندراجات محفوظ رکھتی ہے۔ کسی دوسرے ذیلی پروگرام کا کوئی اور پراکسی انٹرفیس ہو سکتا ہے۔

متعلقہ مضامین