AutoInstallPrinter.ini 文件说明
[PrinterInfo]
; 网络打印机的IP地址,如192.168.3.250
IP=
; 当前目录下打印机的驱动文件,如16L\oemsetup.inf
PrinterDrivePath=
; 打印机驱动的名称,在inf文件中找,如上面的oemsetup.inf里的PCL6 Driver for Universal Print
DrvName=
; 自定义在控制面板显示的名称,如16楼打印机室
CustomizePrinterName=
NSIS代码:
!define HAVE_UPX
!ifdef HAVE_UPX
!packhdr tmp.dat "upx -9 tmp.dat"
!endif
; ------ MUI 现代界面定义 (1.67 版本以上兼容) ------
!include "MUI.nsh"
!include "x64.nsh"
!include "logiclib.nsh"
!include "Printer.nsh"
; MUI 预定义常量
!define MUI_ABORTWARNING
!define MUI_ICON "Printer.ico"
!define PRODUCT_NAME "进化论自动安装打印机工具"
!define PRODUCT_VERSION "2022.01.10.16"
; 安装界面包含的语言设置
!insertmacro MUI_LANGUAGE "SimpChinese"
Var WINDOWS_Language ;WINDOWS语言
Var PrinterIp ;打印机的IP地址
Var PrinterDrivePath ;打印机驱动路径
Var CustomizePrinterName ;自定义打印机名称
Var DrvName ;打印机驱动名称
; 载入插件
!define pluginDir ".\plugins"
!addplugindir "${pluginDir}"
;文件版本声明
VIProductVersion ${PRODUCT_VERSION}
VIAddVersionKey /LANG=2052 "ProductName" "进化论自动安装打印机工具"
VIAddVersionKey /LANG=2052 "Comments" "永恒心锁"
VIAddVersionKey /LANG=2052 "CompanyName" "http://www.yhxs3344.net"
VIAddVersionKey /LANG=2052 "LegalTrademarks" "http://www.yhxs3344.net"
VIAddVersionKey /LANG=2052 "LegalCopyright" "永恒心锁"
VIAddVersionKey /LANG=2052 "FileDescription" "进化论自动安装打印机工具"
VIAddVersionKey /LANG=2052 "FileVersion" ${PRODUCT_VERSION}
; 检测程序是否已运行
!macro CheckRunningPrograms
System::Call 'kernel32::CreateMutexA(i 0, i 0, t"${PRODUCT_NAME}") i .r1 ?e'
Pop $R0
${If} $R0 <> 0
Messagebox MB_TOPMOST|MB_ICONINFORMATION|MB_OK "安装程序已经在运行,请不要多次打开程序"
Quit
${EndIf}
!macroend
XPStyle on
OutFile "AutoInstallPrinter.exe"
Caption "进化论自动安装打印机工具"
RequestExecutionLevel admin ;管理员权限
Section
Sectionend
SilentInstall silent
Function .onInit
!insertmacro CheckRunningPrograms ;安装程序运行检测的变量
InitPluginsDir
File /oname=$PLUGINSDIR\vbs.reg ".\nsPlugin\vbs.reg"
ClearErrors
ReadINIStr $PrinterIp "$EXEDIR\AutoInstallPrinter.ini" "PrinterInfo" "IP"
ReadINIStr $PrinterDrivePath "$EXEDIR\AutoInstallPrinter.ini" "PrinterInfo" "PrinterDrivePath"
ReadINIStr $DrvName "$EXEDIR\AutoInstallPrinter.ini" "PrinterInfo" "DrvName"
ReadINIStr $CustomizePrinterName "$EXEDIR\AutoInstallPrinter.ini" "PrinterInfo" "CustomizePrinterName"
ReadRegStr $WINDOWS_Language HKLM "SYSTEM\CurrentControlSet\Control\Nls\Language" "Default"
${If} $PrinterIp = ""
${AndIf} $PrinterDrivePath = ""
${AndIf} $DrvName = ""
${AndIf} $CustomizePrinterName = ""
Messagebox MB_TOPMOST|MB_ICONINFORMATION|MB_OK "配置信息有缺失,请查看AutoInstallPrinter.ini文件"
ExecWait '"$WINDIR\System32\notepad.exe" $EXEDIR\AutoInstallPrinter.ini'
Quit
${EndIf}
${If} ${RunningX64}
Call OSX64
${Else}
Call OSX86
${EndIf}
FunctionEnd
Function OSX86
nsExec::ExecToLog '"cmd" /c "$WINDIR\regedit.exe /s" "$PLUGINSDIR\vbs.reg"'
${If} $WINDOWS_Language = 0804
nsExec::ExecToLog '"cmd" /c "cscript $WINDIR\System32\Printing_Admin_Scripts\zh-cn\Prnport.vbs" -a -r $PrinterIp -h $PrinterIp -o raw -me -y public -n 9100'
Sleep 300
ExecWait 'rundll32 printui.dll,PrintUIEntry /if /b "$CustomizePrinterName" /f "$EXEDIR\$PrinterDrivePath" /r "$PrinterIp" /m "$DrvName"'
Sleep 1000
Messagebox MB_TOPMOST|MB_ICONINFORMATION|MB_OK "打印机安装完成"
nsExec::ExecToLog '"cmd" /c "explorer shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"'
${EndIf}
${If} $WINDOWS_Language == 0409
nsExec::ExecToLog '"cmd" /c "cscript $WINDIR\System32\Printing_Admin_Scripts\en-US\Prnport.vbs" -a -r $PrinterIp -h $PrinterIp -o raw -me -y public -n 9100'
Sleep 300
ExecWait 'rundll32 printui.dll,PrintUIEntry /if /b "$CustomizePrinterName" /f "$EXEDIR\$PrinterDrivePath" /r "$PrinterIp" /m "$DrvName"'
Sleep 1000
Messagebox MB_TOPMOST|MB_ICONINFORMATION|MB_OK "打印机安装完成"
nsExec::ExecToLog '"cmd" /c "explorer shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"'
${EndIf}
FunctionEnd
Function OSX64
# 关闭重定向
System::Call "Kernel32::Wow64EnableWow64FsRedirection(i 0)"
#修改VBS默认
nsExec::ExecToLog '"cmd" /c "$WINDIR\regedit.exe /s" "$PLUGINSDIR\vbs.reg"'
${If} $WINDOWS_Language = 0804
nsExec::ExecToLog '"cmd" /c "cscript $WINDIR\SysWOW64\Printing_Admin_Scripts\zh-cn\Prnport.vbs" -a -r $PrinterIp -h $PrinterIp -o raw -me -y public -n 9100'
Sleep 300
ExecWait 'rundll32 printui.dll,PrintUIEntry /if /b "$CustomizePrinterName" /f "$EXEDIR\$PrinterDrivePath" /r "$PrinterIp" /m "$DrvName"'
Sleep 1000
Messagebox MB_TOPMOST|MB_ICONINFORMATION|MB_OK "打印机安装完成"
nsExec::ExecToLog '"cmd" /c "explorer shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"'
${EndIf}
${If} $WINDOWS_Language == 0409
nsExec::ExecToLog '"cmd" /c "cscript $WINDIR\SysWOW64\Printing_Admin_Scripts\en-US\Prnport.vbs" -a -r $PrinterIp -h $PrinterIp -o raw -me -y public -n 9100'
Sleep 300
ExecWait 'rundll32 printui.dll,PrintUIEntry /if /b "$CustomizePrinterName" /f "$EXEDIR\$PrinterDrivePath" /r "$PrinterIp" /m "$DrvName"'
Sleep 1000
Messagebox MB_TOPMOST|MB_ICONINFORMATION|MB_OK "打印机安装完成"
nsExec::ExecToLog '"cmd" /c "explorer shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"'
${EndIf}
# 恢复重定向
System::Call "Kernel32::Wow64EnableWow64FsRedirection(i 1)"
FunctionEnd
下载地址:
https://wwi.lanzouw.com/b04o6lelg
提取码:fm3p
© 版权声明
THE END
暂无评论内容