Vet inte om detta är rätt forum, men Pascal är väl besläktat med Delphi?
Hursomhelst, jag håller på att skapa ett installationsprogram m h a programmet InnoSetup som använder Pascal Scripting. Nu undrar jag hur man kan köra en exe i Pascal scripting?
(Det finns visserligen en RUN section i Innosetup, men jag behöver testa om vissa program redan finns på datorn innan jag bestämmer om exe:n ska köras)
Hej,hittade följande exempel på https://www.innosetup.com (FAQ), vilket väl är ungefär det du vill göra:
COMCTL32.DLL
If your application requires an updated version of COMCTL32.DLL, you can direct your users to download the COMCTL32 update from Microsoft, or call the COMCTL32 update from your installation by using the following lines:
[Files]
Source: "50comupd.exe"; DestDir: "{tmp}"
[Code]
function ShouldInstallComCtlUpdate: Boolean;
var
MS, LS: Cardinal;
begin
// Only install if the existing comctl32.dll is < 5.80
Result := False;
if GetVersionNumbers(ExpandConstant('{sys}\comctl32.dll'), MS, LS) then
if MS < $00050050 then
Result := True;
end;
Jag tittade på Check-funktionen, men jag löste det på ett annat sätt, innan du hann svara. Tack för hjälpen i a f. Din lösning är nog snyggare än min...
[Run]
Filename: {tmp}\{code:CheckForMDAC}; WorkingDir: {tmp}; Flags: skipifdoesntexist
function CheckForMDAC(Default: String): string;
var
sMDACversion: string;
begin
blnSuccess:=RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\DataAccess', 'FullInstallver', sMDACversion)
//MsgBox('sMDACversion', mbinformation, MB_OK)
if blnSuccess=true then begin
// MsgBox(sMDACversion, mbinformation, MB_OK)
sMDACversion:=StrGet(sMDACversion, 3);
if StrToInt(sMDACversion)<6 then begin
sMess:='Microsoft Data Access Components kommer nu att installeras. '
MsgBox(sMess, mbinformation, MB_OK)
Result:='MDAC_2.7.EXE'
end;
end;
end;
255 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a