| | |
| | | ; AppName |
| | | #define AppName = "PdmSwPlugin" |
| | | ; 打包的应用文件夹路径 |
| | | #define AppDir = "C:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Release\" |
| | | #define AppDir = "D:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Release\" |
| | | ; 自动更新程序路径 |
| | | #define AutoUpdaterDir = "C:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Release\Release\AutoUpdater\" |
| | | #define AutoUpdaterDir = "D:\Workspace\PdmSwPlugin2\PdmSw\bin\x64\Release\AutoUpdater\" |
| | | ; 版本 |
| | | #define Version = "_0.0.0.40" |
| | | #define Version = "_0.0.0.42" |
| | | |
| | | ; 生成的Installer存放路径 |
| | | #define OutPutDir = "Z:\Main\Workspace\Output" |
| | | #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. |
| | |
| | | WizardStyle=modern |
| | | PrivilegesRequired=admin |
| | | UsedUserAreasWarning=no |
| | | AlwaysRestart=yes |
| | | |
| | | [Languages] |
| | | Name: "chinesesimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl" |
| | | |
| | | [Files] |
| | | [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 |
| | | |
| | |
| | | |
| | | [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; |
| | |
| | | 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 |
| | |
| | | end; |
| | | |
| | | |
| | | [CustomMessages] |
| | | chinesesimplified.checkSoftTip=未能成功停止服务! |
| | | |
| | | |