; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! ; �����Ǵ����ʱ����Ҫ����Ϊ��Ӧ����ԴĿ¼λ�� #define DeployDir "D:\workspace\deploy" #define MyAppName "Dispenser" #define MyAppVersion "1.0.0-alpha-20240131" #define MyAppPublisher "Beijing Haiju, Inc." #define MyAppURL "https://www.haijuDispenser.com/" #define MyAppExeName "Dispenser.exe" #define MyAppAssocName MyAppName + " File" #define MyAppAssocExt ".myp" #define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt #define SourceDir DeployDir + "\program" #define SetupIcon SourceDir + "\favicon.ico" #define UninstallIcon SourceDir + "\favicon.ico" #define GUID "8D5DB57B-B0AE-49F6-A3D2-F502A656825C" [Setup] ; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) AppId={{{#GUID}} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={autopf}\{#MyAppName} ChangesAssociations=yes DefaultGroupName={#MyAppName} AllowNoIcons=yes LicenseFile={#SourceDir}\package\license.txt InfoBeforeFile={#SourceDir}\package\before-install.txt InfoAfterFile={#SourceDir}\package\after-install.txt ; Uncomment the following line to run in non administrative install mode (install for current user only.) ;PrivilegesRequired=lowest OutputDir={#DeployDir} OutputBaseFilename={#MyAppName}-{#MyAppVersion} Compression=lzma SolidCompression=yes WizardStyle=modern ;ָ����װ��ж�س���ͼ�� SetupIconFile={#SetupIcon} ;�������ж��ͼ�� UninstallDisplayIcon={#UninstallIcon} [Languages] Name: "chinesesimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "{#SourceDir}\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Assets\*"; DestDir: "{app}\Assets\"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "{#SourceDir}\runtimes\win\*"; DestDir: "{app}\runtimes\win\"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "{#SourceDir}\runtimes\win-x64\*"; DestDir: "{app}\runtimes\win-x64\"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "{#SourceDir}\runtimes\win-x86\*"; DestDir: "{app}\runtimes\win-x86\"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "{#SourceDir}\zh-Hans\*"; DestDir: "{app}\zh-Hans\"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "{#SourceDir}\AnimatedImage.Avalonia.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\AnimatedImage.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\AspectInjector.Broker.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Base.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Controls.ColorPicker.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Controls.DataGrid.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Controls.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Controls.ItemsRepeater.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.DesignerSupport.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Desktop.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Diagnostics.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Dialogs.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Fonts.Inter.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.FreeDesktop.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Markup.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Markup.Xaml.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Metal.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.MicroCom.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Native.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.OpenGL.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.ReactiveUI.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Remote.Protocol.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Skia.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Themes.Fluent.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Themes.Simple.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.Win32.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Avalonia.X11.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\BouncyCastle.Crypto.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\ColorTextBlock.Avalonia.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\CommunityToolkit.Mvvm.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\DialogHost.Avalonia.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\DynamicData.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\EntityFramework.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\EntityFramework.SqlServer.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\GxIAPINET.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\HarfBuzzSharp.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Markdown.Avalonia.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Dispenser.deps.json"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Dispenser.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Dispenser.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Dispenser.pdb"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Dispenser.runtimeconfig.json"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\DispenserCommon.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\DispenserCommon.pdb"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\DispenserUI.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\DispenserUI.pdb"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\MessageBoxSlim.Avalonia.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\MicroCom.Runtime.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.AspNetCore.Server.Kestrel.Https.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.CodeAnalysis.CSharp.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.CodeAnalysis.CSharp.Scripting.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.CodeAnalysis.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.CodeAnalysis.Scripting.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Configuration.Abstractions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Configuration.Binder.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Configuration.CommandLine.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Configuration.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Configuration.EnvironmentVariables.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Configuration.FileExtensions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Configuration.Ini.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Configuration.Json.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Configuration.UserSecrets.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.DependencyInjection.Abstractions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.DependencyInjection.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.DependencyModel.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Diagnostics.Abstractions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Diagnostics.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.FileProviders.Abstractions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.FileProviders.Physical.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.FileSystemGlobbing.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Hosting.Abstractions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Hosting.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Logging.Abstractions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Logging.Configuration.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Logging.Console.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Logging.Debug.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Logging.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Logging.EventLog.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Logging.EventSource.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Options.ConfigurationExtensions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Options.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Extensions.Primitives.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Microsoft.Win32.SystemEvents.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\MsBox.Avalonia.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Opc.Ua.Bindings.Https.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Opc.Ua.Client.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Opc.Ua.Configuration.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Opc.Ua.Core.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Opc.Ua.Gds.Client.Common.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Opc.Ua.Gds.Server.Common.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Opc.Ua.Security.Certificates.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Opc.Ua.Server.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\OpcUaHelper.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\OpcUaSdk.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\OpcUaSdk.pdb"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\ReactiveUI.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Serilog.AspNetCore.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Serilog.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Serilog.Exceptions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Serilog.Extensions.Hosting.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Serilog.Extensions.Logging.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Serilog.Formatting.Compact.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Serilog.Settings.Configuration.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Serilog.Sinks.Console.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Serilog.Sinks.Debug.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Serilog.Sinks.File.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\settings.ini"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\SkiaSharp.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Splat.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.CodeDom.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.Configuration.ConfigurationManager.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.Data.SqlClient.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.Data.SQLite.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.Data.SQLite.EF6.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.Diagnostics.DiagnosticSource.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.Diagnostics.EventLog.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.Drawing.Common.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.IO.Ports.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.Private.ServiceModel.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.Reactive.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.Security.Cryptography.ProtectedData.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.Security.Permissions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.ServiceModel.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.ServiceModel.Primitives.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.Text.Encodings.Web.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.Text.Json.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\System.Windows.Extensions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#SourceDir}\Tmds.DBus.Protocol.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "{#DeployDir}\dotnet-runtime-7.0.15-win-x64.exe"; DestDir: "{app}"; Flags: noencryption deleteafterinstall Source: "{#DeployDir}\windowsdesktop-runtime-7.0.15-win-x64.exe"; DestDir: "{app}"; Flags: noencryption deleteafterinstall Source: "{#DeployDir}\aspnetcore-runtime-7.0.15-win-x64.exe"; DestDir: "{app}"; Flags: noencryption deleteafterinstall Source: "{#DeployDir}\Galaxy_Windows_Runtime.exe"; DestDir: "{app}"; Flags: noencryption deleteafterinstall ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Run] Filename: "{app}\dotnet-runtime-7.0.15-win-x64.exe"; Parameters: "/norestart"; StatusMsg: "���Ժ�!���ڼ�鰲װ��Ҫ�����л��� .NET RUNTIME 7.0"; Check: not IsDotNetRuntimeInstalled('Microsoft.NETCore.App 7.') Filename: "{app}\windowsdesktop-runtime-7.0.15-win-x64.exe"; Parameters: "/norestart"; StatusMsg: "���Ժ�!���ڼ�鰲װ��Ҫ�����л��� DESKTOP RUNTIME Core 7.0"; Check: not IsDotNetRuntimeInstalled('Microsoft.WindowsDesktop.App 7.') Filename: "{app}\aspnetcore-runtime-7.0.15-win-x64.exe"; Parameters: "/norestart"; StatusMsg: "���Ժ�!���ڼ�鰲װ��Ҫ�����л��� ASP.NET RUNTIME 7.0"; Check: not IsDotNetRuntimeInstalled('Microsoft.AspNetCore.App 7.') [Run] Filename: "{app}\Galaxy_Windows_Runtime.exe"; Parameters: "/norestart"; StatusMsg: "���Ժ�!���ڼ�鰲װ�������"; Check: not IsGalaxyInstalled [Registry] Root: HKA; Subkey: "Software\Classes\{#MyAppAssocExt}\OpenWithProgids"; ValueType: string; ValueName: "{#MyAppAssocKey}"; ValueData: ""; Flags: uninsdeletevalue Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}"; ValueType: string; ValueName: ""; ValueData: "{#MyAppAssocName}"; Flags: uninsdeletekey Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0" Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1""" Root: HKA; Subkey: "Software\Classes\Applications\{#MyAppExeName}\SupportedTypes"; ValueType: string; ValueName: ".myp"; ValueData: "" Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "{#MyAppName}"; ValueData: "{app}\{#MyAppExeName}" [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}" Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon [Run] // [Run]- ����ָ���ڳ�����ɰ�װ���ڰ�װ������ʾ���նԻ���ǰҪִ�е�һЩ���� Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent [Code] // �ж��Ƿ��Ѿ���װ���� .NET RUNTIME ���� function IsDotNetRuntimeInstalled(DotNetName: string): Boolean; var Cmd, Args: string; FileName: string; Output: AnsiString; Command: string; ResultCode: Integer; begin FileName := ExpandConstant('{tmp}\dotnet.txt'); Cmd := ExpandConstant('{cmd}'); Command := 'dotnet --list-runtimes'; // �� dotnet --list-runtimes �Ľ������� dotnet.txt �ļ� Args := '/C ' + Command + ' > "' + FileName + '" 2>&1'; if Exec(Cmd, Args, '', SW_HIDE, ewWaitUntilTerminated, ResultCode) and (ResultCode = 0) then begin // �� dotnet.txt �ļ� �ж�ȡ���� if LoadStringFromFile(FileName, Output) then begin if Pos(DotNetName, Output) > 0 then begin Result := True; end else begin MsgBox(DotNetName + ' �汾������Ҫ���밲װ��', mbError, MB_OK); Result := False; end; end end else begin MsgBox(DotNetName + ' �汾������Ҫ���밲װ��', mbError, MB_OK); Result := False; end; // ɾ�� dotnet.txt �ļ� DeleteFile(FileName); end; // �жϴ����������Ƿ�װ�ɹ� function IsGalaxyInstalled: Boolean; begin Result := True; if RegValueExists(HKLM64, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Galaxy Runtime SDK_is1', 'DisplayName') then begin Result := True; Exit; end else if RegValueExists(HKLM64, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Galaxy SDK_is1', 'DisplayName') then begin Result := True; Exit; end else begin MsgBox('ȱ�ٱ�Ҫ���������������װĿ��������', mbError, MB_OK); Result := False; Exit; end; end; //�������Ƿ����� function IsAppRunning(const FileName: string): Boolean; var FWMIService: Variant; FSWbemLocator: Variant; FWbemObjectSet: Variant; begin Result := false; FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator'); FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', ''); FWbemObjectSet := FWMIService.ExecQuery(Format('SELECT Name FROM Win32_Process Where Name="%s"',[FileName])); Result := (FWbemObjectSet.Count > 0); FWbemObjectSet := Unassigned; FWMIService := Unassigned; FSWbemLocator := Unassigned; end; //׼����װ function InitializeSetup(): Boolean; var ResultStr: String; ResultCode: Integer; begin result := IsAppRunning('{#MyAppExeName}'); if result then begin MsgBox('��⵽{#MyAppName}�������У����ȹرճ��������! ', mbError, MB_OK); result:=false; end else if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#GUID}_is1', 'UninstallString', ResultStr) then begin if MsgBox('�Ƿ�ж���Ѱ�װ��{#MyAppName}����������ʷ���ݣ�', mbConfirmation, MB_YESNO) = IDYES then begin ResultStr := RemoveQuotes(ResultStr); Exec(ResultStr, '/silent', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); end; result:=true; end else begin result:=true; end; end; //׼��ж�� function InitializeUninstall(): Boolean; begin result := IsAppRunning('{#MyAppExeName}'); if result then begin MsgBox('��⵽{#MyAppName}�������У����ȹرճ��������! ', mbError, MB_OK); result:=false; end else begin result:=true; end end;