; AppId
|
#define AppId = "DF23E96F-A469-4302-8367-7FA2F798CD09"
|
; AppName
|
#define AppName = "PdmSwPlugin"
|
; ´ò°üµÄÓ¦ÓÃÎļþ¼Ð·¾¶
|
#define AppDir = "D:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Release\"
|
; ×Ô¶¯¸üгÌÐò·¾¶
|
#define AutoUpdaterDir = "D:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Release\AutoUpdater\"
|
; °æ±¾
|
#define Version = "_0.0.0.46_2024"
|
|
; Éú³ÉµÄInstaller´æ·Å·¾¶
|
#define OutPutDir = "Z:\Output"
|
#define DllName = "PdmSwPlugin.dll"
|
#define MyAppExeName "SolidWorksListener.exe"
|
|
[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={{{#AppId}}
|
AppName={#AppName}
|
AppVersion={#Version}
|
;AppVerName=Test 1.0
|
; °²×°Â·¾¶ C:\Program Files (x86)\LHJ\PdmSwPlugin
|
DefaultDirName={autopf}\HengXin\PdmSwPlugin
|
DisableDirPage=yes
|
DefaultGroupName=PdmSwPlugin
|
DisableProgramGroupPage=yes
|
; Uncomment the following line to run in non administrative install mode (install for current user only.)
|
;PrivilegesRequired=lowest
|
OutputDir={#OutputDir}
|
OutputBaseFilename=PdmSwPluginInstaller_V{#Version}
|
Compression=lzma
|
SolidCompression=yes
|
WizardStyle=modern
|
PrivilegesRequired=admin
|
UsedUserAreasWarning=no
|
AlwaysRestart=yes
|
|
[Languages]
|
Name: "chinesesimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl"
|
|
[Files]
|
Source: "{#AppDir}*"; DestDir: "{app}"; Excludes: "temp\*,Log\*"; Flags:recursesubdirs ignoreversion
|
;Source: "InnoSetupUtil.dll"; DestDir: "{app}"
|
;Source: "{#AutoUpdaterDir}*"; DestDir: "{app}\AutoUpdater"; Excludes: "download\*"; Flags: ignoreversion
|
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
|
[Dirs]
|
Name: {app}; Permissions: users-full
|
|
[Run]
|
Filename: {dotnet4064}\RegAsm.exe; Parameters: /codebase {#DllName}; WorkingDir: {app}; Flags: runhidden nowait skipifsilent;
|
Filename: {app}\Listener\SolidWorksListener.exe; WorkingDir: {app}\Listener\; Flags: runhidden nowait skipifsilent;
|
|
[UninstallRun]
|
Filename: {dotnet4064}\RegAsm.exe; Parameters: /unregister {#DllName}; WorkingDir: {app}; RunOnceId: DelService; Flags: runhidden nowait;
|
|
[Registry]
|
; ×¢²á±í
|
Root: HKCU; Subkey: "Software\SolidWorks\AddInsStartup\{{{#AppId}}"; Flags: uninsdeletekey
|
Root: HKCU; Subkey: "Software\SolidWorks\AddInsStartup\{{{#AppId}}"; ValueType: dword; ValueName: ""; ValueData: 1; Flags: deletevalue
|
; ×¢²á±í
|
; 32
|
Root: HKLM; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; Flags: uninsdeletekey
|
Root: HKLM; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: dword; ValueName: ""; ValueData: 0; Flags: deletevalue
|
Root: HKLM; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: string; ValueName: "Description"; ValueData: "PDM²å¼þ"; Flags: deletevalue
|
Root: HKLM; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: string; ValueName: "Title"; ValueData: "PdmSw"; Flags: deletevalue
|
; 64
|
Root: HKLM64; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; Flags: uninsdeletekey
|
Root: HKLM64; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: dword; ValueName: ""; ValueData: 0; Flags: deletevalue
|
Root: HKLM64; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: string; ValueName: "Description"; ValueData: "PDM²å¼þ"; Flags: deletevalue
|
Root: HKLM64; Subkey: "SOFTWARE\SolidWorks\Addins\{{{#AppId}}"; ValueType: string; ValueName: "Title"; ValueData: "PdmSw"; Flags: deletevalue
|
; ¼àÌýÆ÷
|
;Root: HKLM64; Subkey: "SYSTEM\CurrentControlSet\Services\SolidWorks Listener"; Flags: uninsdeletekey
|
;Root: HKLM64; Subkey: "SYSTEM\CurrentControlSet\Services\SolidWorks Listener"; ValueType: string; ValueName: "DisplayName"; ValueData: "SolidWorks Listener"; Flags: deletevalue
|
;Root: HKLM64; Subkey: "SYSTEM\CurrentControlSet\Services\SolidWorks Listener"; ValueType: string; ValueName: "ObjectName"; ValueData: "LocalSystem"; Flags: deletevalue
|
;Root: HKLM64; Subkey: "SYSTEM\CurrentControlSet\Services\SolidWorks Listener"; ValueType: string; ValueName: "ImagePath"; ValueData: "{app}\Listener\PluginListener.exe"; Flags: deletevalue
|
;Root: HKLM64; Subkey: "SYSTEM\CurrentControlSet\Services\SolidWorks Listener"; ValueType: dword; ValueName: "ErrorControl"; ValueData: 1; Flags: deletevalue
|
;Root: HKLM64; Subkey: "SYSTEM\CurrentControlSet\Services\SolidWorks Listener"; ValueType: dword; ValueName: "Start"; ValueData: 2; Flags: deletevalue
|
;Root: HKLM64; Subkey: "SYSTEM\CurrentControlSet\Services\SolidWorks Listener"; ValueType: dword; ValueName: "Type"; ValueData: 272; Flags: deletevalue
|
|
; ¼àÌýÆ÷2.0
|
Root: HKCU64; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "SolidWorksListener"; ValueData: "{app}\Listener\SolidWorksListener.exe"; Flags: deletevalue uninsdeletevalue
|
|
|
[Icons]
|
Name: "{group}\{cm:UninstallProgram,Test}"; Filename: "{uninstallexe}"
|
|
[code]
|
// ×Ô¶¨Ò庯Êý£¬ÖÕÖ¹·þÎñ
|
function CheckSoftRun(strExeName: String): Boolean;
|
// ±äÁ¿¶¨Òå
|
var ErrorCode: Integer;
|
var bRes: Boolean;
|
var cmdStr: String; // ÃüÁî
|
begin
|
cmdStr := Format('/c net stop "%s"', [strExeName]);
|
if RegValueExists(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Services\SolidWorks Listener', 'ImagePath') then begin
|
// ÖÕÖ¹·þÎñ
|
bRes := ShellExec('open', ExpandConstant('{cmd}'), cmdStr, '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
|
if bRes then begin
|
Result := true;
|
end else begin
|
MsgBox(ExpandConstant('{cm:checkSoftTip}'), mbCriticalError, MB_OKCANCEL);
|
Result := false;
|
Exit;
|
end;
|
end else begin
|
Result := true;
|
end;
|
end;
|
|
function CheckSoftRun3(): Boolean;
|
var hWnd: Integer;
|
var ResultCode: Integer;
|
var exe1: String;
|
var exe2: String;
|
begin
|
// hWnd := StrToInt(ExpandConstant('{wizardhwnd}'));
|
exe1 := Format('/c powershell "Get-Process|Where-Object{$_.Path -eq \"%s\"}|Stop-Process|pause"', [ExpandConstant('{autopf}\HengXin\PdmSwPlugin\Listener\SolidWorksListener.exe')]);
|
exe1 := '/c taskkill /f /t /im SolidWorksListener.exe';
|
exe2 := '/c taskkill /f /t /im Alert.exe';
|
|
ShellExec('open', ExpandConstant('{cmd}'), exe1, '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
ShellExec('open', ExpandConstant('{cmd}'), exe2, '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
Result:= true;
|
end;
|
|
// ¿ªÊ¼Ò³ÏÂÒ»²½Ê±ÅжÏÈí¼þÊÇ·ñÔËÐÐ
|
function NextButtonClick(CurPageID: Integer): Boolean;
|
begin
|
if 1=CurPageID then begin
|
Result := CheckSoftRun3();
|
Exit;
|
end;
|
Result:= true;
|
end;
|
|
// Ð¶ÔØÊ±¹Ø±ÕÈí¼þ
|
function InitializeUninstall(): Boolean;
|
begin
|
Result := CheckSoftRun3();
|
end;
|
|
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
|
begin
|
if CurUninstallStep = usDone then
|
begin
|
DelTree(ExpandConstant('{app}'), True, True, True);
|
end;
|
end;
|
|
|
[CustomMessages]
|
chinesesimplified.checkSoftTip=δÄܳɹ¦Í£Ö¹·þÎñ£¡
|