installer - इनो सेटअप: रन सेक्शन पर प्रगति बार में हेरफेर कैसे करें?



progress-bar inno-setup (1)

प्रगति पट्टी को अपडेट करना मुश्किल होगा, जबकि दूसरी प्रक्रिया चल रही है।

मुझे यह प्रयास करने का एक बिंदु नहीं दिख रहा है, क्योंकि आप उप-इंस्टॉलर की प्रगति को बताने में असमर्थ हैं, इसलिए आपको नहीं पता होगा कि प्रगति बार को क्या अपडेट करना है।

विशेष मामलों को छोड़कर, जब उप-इंस्टॉलर अपनी प्रगति की रिपोर्ट करने के लिए एक एपीआई प्रदान करता है।
एक उदाहरण के लिए, देखें:

  • इनो सेटअप प्रगति बार स्थिति या अद्यतन करने के लिए .NET फ्रेमवर्क 4.5 (या उच्चतर) इंस्टॉलर से प्रगति प्राप्त करें
  • इनो सेटअप - इनो सेटअप इंस्टॉलर बनाओ इसकी स्थापना प्रगति की स्थिति मास्टर इंस्टॉलर को रिपोर्ट करें ।

समाप्त उप-इंस्टॉलरों की संख्या के अनुसार प्रगति बार को अपडेट करने के लिए, आप कर सकते हैं:

[Run]
FileName: "process1"; BeforeInstall: UpdateProgress(0); AfterInstall: UpdateProgress(33)
FileName: "process2"; AfterInstall: UpdateProgress(66)
FileName: "process3"; AfterInstall: UpdateProgress(100)

[Code]

procedure UpdateProgress(Position: Integer);
begin
  WizardForm.ProgressGauge.Position := Position * WizardForm.ProgressGauge.Max div 100;
end;

फ़ाइलों को स्थापित करने और उप-इंस्टॉलरों को चलाने के लिए प्रगति सीमा का हिस्सा विभाजित करने के लिए, देखें
इनो सेटअप - प्रगति बार से 100% तक फ़ाइलों की निकासी को रोकें

एक अन्य विकल्प "मार्की" (= अनंत) प्रगति बार शैली का उपयोग करना है।

प्रगति बार नियंत्रण शैलियों को देखें।

[Run]
FileName: "process1"; BeforeInstall: SetMarqueeProgress(True)
FileName: "process2"
FileName: "process3"; AfterInstall: SetMarqueeProgress(False)

[Code]

procedure SetMarqueeProgress(Marquee: Boolean);
begin
  if Marquee then
  begin
    WizardForm.ProgressGauge.Style := npbstMarquee;
  end
    else
  begin
    WizardForm.ProgressGauge.Style := npbstNormal;
  end;
end;

अब तक आधिकारिक Microsoft दस्तावेज़ीकरण में सूचीबद्ध नहीं होने के बावजूद विंडोज एक्सपी पर काम करता है। Windows XP SP3 पर परीक्षण किया गया।

इस प्रश्न के समान:
इनो सेटअप इंस्टॉल स्क्रिप्ट के [रन] अनुभाग में प्रगति बार मान कैसे सेट करें?

जब इनो सेटअप [Run] सेक्शन में जाता है, तो प्रगति बार 100% पर दिखाई देता है और इस स्थिति में रुक जाता है।

मेरे पास इस Run सेक्शन में कई फाइलें हैं, जिन्हें मैं प्रगति बार को फिर से शुरू करना चाहता हूं और इसे नियंत्रित करना चाहता हूं, क्योंकि यह प्रत्येक प्रोग्राम को स्थापित करता है।

स्थिति संदेश को बदलना आसान है ( StatusMsg ), लेकिन प्रगति मुझे कुछ याद आ रही है। क्या तुम लोग मेरी मदद कर सकते हो?

उदाहरण:

[Run]
Filename: "msiexec.exe"; Parameters: "/i ""msxml.msi"" /quiet"; \
    StatusMsg: "MSXML..."; Flags: runascurrentuser
Filename: "msiexec.exe"; Parameters: "/i ""capicom_dc_sdk.msi"" /quiet"; \
    StatusMsg: "CAPICOM..."; Flags: runascurrentuser

चूंकि मैं स्थापना के दौरान प्रगति पट्टी को नियंत्रित करना चाहता हूं, मुझे नहीं पता कि क्या करना है। मैंने सोचा कि शायद पहले BeforeInstall पैरामीटर का उपयोग करते हुए, WizardForm.ProgressGauge.Position = 0; जैसे कुछ करके प्रगति पट्टी को 0 पर सेट करने के लिए एक कोड बनाया जाए WizardForm.ProgressGauge.Position = 0; और AfterInstall पैरामीटर में, विपरीत, WizardForm.ProgressGauge.Position = 100; , लेकिन स्थापना के दौरान कैसे बदलें?

धन्यवाद।