OutFile 'Radmin3.5.2.1原版.exe'
RequestExecutionLevel admin
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\Radmin3.5.2"
!include "MUI2.nsh"
!include "x64.nsh"
!define MUI_PAGE_CUSTOMFUNCTION_PRE 'CopyFiles'
!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyInstFiles
!insertmacro MUI_PAGE_INSTFILES
Icon radmin.ico
UninstallIcon 卸载.ico
!insertmacro MUI_LANGUAGE "SimpChinese"
VIProductVersion "3.5.2.0" ;版本号
VIAddVersionKey /LANG=2052 "ProductName" "Radmin Server" ;文件描述
VIAddVersionKey /LANG=2052 "LegalCopyright" "Copyright (C)1999-2017 Famatech Copy.and..." ;版权
VIAddVersionKey /LANG=2052 "FileDescription" "Radmin Server" ;产品名称
VIAddVersionKey /LANG=2052 "FileVersion" "3.5.2.0" ;文件版本
VIAddVersionKey /LANG=2052 "ProductVersion" "3.5.2.0" ;产品版本
VIAddVersionKey /LANG=2052 "OriginalFilename" "RServer3setup.exe" ;源文件名
ShowInstDetails nevershow
ShowUninstDetails nevershow
AutoCloseWindow true
BrandingText "顺艺网络专用"
Caption "顺艺网络专用版"
Section "Radmin"
SimpleSC::StopService RServer3 1 20
CopyFiles /SILENT "$Temp\Radmin\*.*" "$WinDir\SysWoW64\rserver30"
${If} ${RunningX64}
System::Call "Kernel32::Wow64EnableWow64FsRedirection(i 0)"
SetRegView 64
WriteRegStr HKLM "SOFTWARE\Wow6432Node\Radmin\v3.0\Server" "LicenseText" "已注册"
WriteRegDWORD HKLM "SOFTWARE\Wow6432Node\Radmin\v3.0\Server" "HideTrayIcon" 0x00000001
;定义端口密码
;WriteRegBin HKLM "SOFTWARE\WOW6432Node\Radmin\v3.0\Server\Parameters" "Port" "端口注册表"
;WriteRegBin HKLM "SOFTWARE\WOW6432Node\Radmin\v3.0\Server\Parameters\Radmin Security\1" "1" "密码注册表"
SetDetailsPrint textonly
DetailPrint "安装完成..."
SetDetailsPrint listonly
SimpleSC::InstallService "RServer3" "Radmin Server V3" "272" "2" '"$WinDir\SysWOW64\rserver30\RServer3.exe" /service' "" "" ""
SimpleSC::SetServiceDescription "RServer3" "为授权的远程用户提供安全的远程控制、文件传输、文本聊天、语音聊天和其他服务。"
SimpleSC::SetServiceFailure "RServer3" "0" "" "" 1 60000 1 60000 1 60000
NsExec::Exec 'SC.exe create raddrvv3 binpath= "$WinDir\SysWOW64\rserver30\raddrvv3.sys" type= kernel start= system group= Base displayname= raddrvv3'
SimpleSC::StartService "raddrvv3" 1 30
SimpleSC::StartService "RServer3" 1 30
SetOutPath "$WinDir\SysWoW64\rserver30"
CreateDirectory "$SMPROGRAMS\Radmin Server 3"
CreateShortCut "$SMPROGRAMS\Radmin Server 3\Radmin服务器的设置.lnk" "$WinDir\SysWoW64\rserver30\rserver3.exe" "/setup"
CreateShortCut "$SMPROGRAMS\Radmin Server 3\帮助.lnk" "$WinDir\SysWoW64\rserver30\Radmin30cn.chm"
CreateShortCut "$SMPROGRAMS\Radmin Server 3\启动Radmin服务器.lnk" "$WinDir\SysWoW64\rserver30\rserver3.exe" "/start"
CreateShortCut "$SMPROGRAMS\Radmin Server 3\停止Radmin服务器.lnk" "$WinDir\SysWoW64\rserver30\rserver3.exe" "/stop"
CreateShortCut "$SMPROGRAMS\Radmin Server 3\卸载.lnk" "$WinDir\SysWoW64\rserver30\卸载.exe"
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "DisplayName" "Radmin Server 3.5.2"
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "DisplayVersion" "3.52.1.0000"
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "Publisher" "Famatech"
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$WinDir\SysWoW64\rserver30\rserver3.exe"
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "UninstallString" "$WinDir\SysWoW64\rserver30\卸载.exe /S"
WriteUninstaller $WinDir\SysWoW64\rserver30\卸载.exe
${Else}
CopyFiles /SILENT "$Temp\Radmin\*.*" "$WINDIR\System32\rserver30"
SimpleSC::StopService RServer3 1 20
WriteRegStr HKLM "SOFTWARE\Radmin\v3.0\Server" "LicenseText" "已注册"
WriteRegDWORD HKLM "SOFTWARE\Radmin\v3.0\Server" "HideTrayIcon" 0x00000001
;定义端口密码
;WriteRegBin HKLM "SOFTWARE\WOW6432Node\Radmin\v3.0\Server\Parameters" "Port" "端口注册表"
;WriteRegBin HKLM "SOFTWARE\WOW6432Node\Radmin\v3.0\Server\Parameters\Radmin Security\1" "1" "密码注册表"
SetDetailsPrint textonly
DetailPrint "安装完成..."
SetDetailsPrint listonly
SimpleSC::InstallService "RServer3" "Radmin Server V3" "272" "2" '"$WINDIR\System32\rserver30\RServer3.exe" /service' "" "" ""
SimpleSC::SetServiceDescription "RServer3" "为授权的远程用户提供安全的远程控制、文件传输、文本聊天、语音聊天和其他服务。"
SimpleSC::SetServiceFailure "RServer3" "0" "" "" 1 60000 1 60000 1 60000
NsExec::Exec 'SC.exe create raddrvv3 binpath= "$WinDir\System32\rserver30\raddrvv3.sys" type= kernel start= system group= Base displayname= raddrvv3'
SimpleSC::StartService "raddrvv3" 1 30
SimpleSC::StartService "RServer3" 1 30
CreateDirectory "$SMPROGRAMS\Radmin Server 3"
CreateShortCut "$SMPROGRAMS\Radmin Server 3\Radmin服务器的设置.lnk" "$WinDir\System32\rserver30\rserver3.exe" "/setup"
CreateShortCut "$SMPROGRAMS\Radmin Server 3\帮助.lnk" "$WinDir\System32\rserver30\Radmin30cn.chm"
CreateShortCut "$SMPROGRAMS\Radmin Server 3\启动Radmin服务器.lnk" "$WinDir\System32\rserver30\rserver3.exe" "/start"
CreateShortCut "$SMPROGRAMS\Radmin Server 3\停止Radmin服务器.lnk" "$WinDir\System32\rserver30\rserver3.exe" "/stop"
CreateShortCut "$SMPROGRAMS\Radmin Server 3\卸载.lnk" "$WinDir\System32\rserver30\卸载.exe"
${EndIf}
RMDir /r $Temp\Radmin
SectionEnd
Function MyInstFiles
GetDlgItem $0 $HWNDPARENT 1 ;下一步
ShowWindow $0 ${SW_HIDE}
GetDlgItem $0 $HWNDPARENT 2 ;取消
ShowWindow $0 ${SW_HIDE}
GetDlgItem $1 $HWNDPARENT 3 ;上一步
ShowWindow $1 ${SW_HIDE}
GetDlgItem $0 $HWNDPARENT 1037
ShowWindow $0 ${SW_HIDE}
GetDlgItem $0 $HWNDPARENT 1038
SendMessage $0 ${WM_SETTEXT} 0 "STR:Radmin正在安装,请稍候...."
FunctionEnd
Function 'CopyFiles'
GetDlgItem $R0 $HWNDPARENT 1
System::Call 'user32::GetWindowLong(i $hwndparent,i -16)i.r0'
intop $1 0x80000 ~
intop $0 $0 & $1
System::Call 'user32::SetWindowLong(i $hwndparent,i -16,i $0)i'
FunctionEnd
Function .onInit
SetOutPath $Temp\Radmin
File rserver30\*.*
FunctionEnd
Section Uninstall
SimpleSC::StopService raddrvv3 1 30
SimpleSC::StopService RServer3 1 20
SimpleSC::RemoveService "raddrvv3"
SimpleSC::RemoveService "RServer3"
SetRegView 64
DeleteRegKey HKLM "${PRODUCT_UNINST_KEY}"
RMDir /r /REBOOTOK "$WINDIR\System32\rserver30"
RMDir /r /REBOOTOK "$WinDir\SysWoW64\rserver30"
RMDir /r "$SMPROGRAMS\Radmin Server 3"
SetAutoClose true
SectionEnd
@来自无忧