AutoInstallPrinter.ini 文件说明
[PrinterInfo] ; 网络打印机的IP地址,如192.168.3.250 IP= ; 当前目录下打印机的驱动文件,如16L\oemsetup.inf PrinterDrivePath= ; 打印机驱动的名称,在inf文件中找,如上面的oemsetup.inf里的PCL6 Driver for Universal Print DrvName= ; 自定义在控制面板显示的名称,如16楼打印机室 CustomizePrinterName=
代码:
!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