चल रहा है, जब आवश्यक शर्तें परीक्षण विफल रहता है, बस InitializeSetup
से False
लौटने से इंस्टॉलर को रोकने के लिए। विज़ार्ड शो से पहले यह इंस्टॉलर से बाहर निकल जाएगा।
function InitializeSetup(): Boolean;
begin
Result := True;
if not PrerequisitesTest then
begin
SuppressibleMsgBox('Prerequisites test failed', mbError, MB_OK, MB_OK);
Result := False;
end;
end;
आप आवश्यक शर्तें परीक्षण करने के लिए की जरूरत है सही से पहले स्थापना केवल शुरू होता है (यानी InitializeSetup
बहुत जल्दी है), तो आप CurStepChanged(ssInstall)
से Abort
function कॉल कर सकते हैं:
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then
begin
if not PrerequisitesTest then
begin
SuppressibleMsgBox('Prerequisites test failed', mbError, MB_OK, MB_OK);
Abort;
end;
end;
end;
हालांकि इस परिदृश्य के लिए, सेटअप से बाहर निकलने के बजाय PrepareToInstall
event function तंत्र का उपयोग करने पर विचार करें।
function PrepareToInstall(var NeedsRestart: Boolean): String;
begin
Result := '';
if not PrerequisitesTest then
begin
Result := 'Prerequisites test failed';
end;
end;
आप संस्थापक किसी अन्य समय समाप्त के लिए मजबूर करने की जरूरत है, ExitProcess
WinAPI कॉल का उपयोग करें:
procedure ExitProcess(uExitCode: Integer);
external '[email protected] stdcall';
function NextButtonClick(CurPageID: Integer): Boolean;
begin
if CurPageID = wpReady then
begin
if not PrerequisitesTest then
begin
SuppressibleMsgBox('Prerequisites test failed', mbError, MB_OK, MB_OK);
ExitProcess(1);
end;
end;
Result := True;
end;
हालांकि इस बल्कि असुरक्षित बाहर निकलें है, इसलिए इसका इस्तेमाल केवल अंतिम उपाय दृष्टिकोण के रूप में।
स्रोत
2016-09-30 10:08:23
** हाँ, यह संभव है। ** आप उम्मीद कर रहे हैं किसी को आप के लिए कोड लिखने होगा? क्या आप कम से कम उस कोड को पोस्ट कर सकते हैं जो आपके पास पहले से ही '[code'] सेक्शन में है? –
प्रश्न का उत्तर यहां दिया गया था: http://stackoverflow.com/questions/6345920/inno-setup-how-to-abort-terminate-setup-during-install – 010110110101