ffcloudy 发表于 2016-6-5 11:02:43

[已解决] 怎么用命令直接打开打印机

本帖最后由 ffcloudy 于 2016-6-14 15:35 编辑

打印机的首选项设置有点问题 想做一个脚本 自动修改打印机首选项设置 但是网上查了一下资料 貌似不能直接修改注册表来修改首选项的默认设置 只能通过模拟操作 前面的问题我自己试了一下 所以打算另外采取一种方案 现在遇到一个问题因为打印机的型号和数量每台机器不一致 所以在AU3中怎么直接打开默认打印机了 。。

qqgghh1 发表于 2016-6-6 15:45:16

逛任何坛子,请学会搜索,看你是新人,给你一次机会。{:face (303):}
实测好用
AU3批处理:RunWait(@ComSpec & " /c " & 'rundll32 printui.dll,PrintUIEntry /y /n \\完整的打印机名称(含IP地址)',"", @SW_HIDE)
AU3 函数:
#Include <WinAPI.au3>
_WinAPI_SetDefaultPrinter($sPrinter)


$sPrinter 默认打印机的名称. 对于远程打印机, 名称格式为 \\服务器\打印机名称
对于本地打印机, 名称格式是打印机的名称. 如果这个参数为"", 或已经有一个默认打印机, 此函数不执行任何操作.
如果没有默认打印机, 这个函数设置默认打印机为第一台打印机;
如果有, 则枚举本地计算机上安装的打印机.

ffcloudy 发表于 2016-6-6 16:45:27

本帖最后由 ffcloudy 于 2016-6-6 16:46 编辑

回复 2# qqgghh1


    可能我说的不太清楚。其实我自己也解决这个问题了 但是目前查看了一下 直接用脚本调用命令行修改之后打印机首选项的设置修改的是以前的设定 不是当前标准设定 所以我用脚本修改完之后重新打开打印机首选项之后系统还是默认采取的标准设定 不是我修改后的设置 必须去喜好设置里面变更才能生效 但是如果用鼠标直接点击就可以直接修改标准设置...Run('rundll32 printui.dll,PrintUIEntry /s /t1 \\' & @ComputerName & '\\"' & _WinAPI_GetDefaultPrinter() & '"')
                              WinWaitActive("","",10)
                                Send("^{tab 4}")
                                Send("{DOWN 8}")
                                Send("{right}")
                                Sleep(100)
                                Send("{DOWN 2}")
                                Sleep(500)
                        Send("{Enter}")
                        Send("{Enter}")

qqgghh1 发表于 2016-6-7 08:22:06

sorry,是我没看清,理解错误了。
“所以我用脚本修改完之后重新打开打印机首选项之后系统还是默认采取的标准设定 不是我修改后的设置 ...”
-------试试添加这个语句呢?
#RequireAdmin

ffcloudy 发表于 2016-6-7 09:50:00

回复 4# qqgghh1
这个我尝试过了 系统还是只认标准设定 目前我试过的唯一能修改标准设定的就是直接打开打印机然后修改而不是用命令行调用出来的。

kk_lee69 发表于 2016-6-8 17:31:45

本帖最后由 kk_lee69 于 2016-6-8 17:43 编辑

回复 5# ffcloudy


    https://support.microsoft.com/zh-tw/kb/196732

http://www.ithome.com.tw/node/51336

我習慣用VBScript來執行新增印表機的作業,你可以利用下面兩行的內容來操作:
Set WshNetwork = CreateObject("WScript.NETwork")
WshNetwork.AddWindowsPrinterConnection “\server\印表機名稱”
把上面的內容存成副檔名為「xxx.vbs」的檔案,放到AD群組原則中的「使用者設定」、「Windows設定」、「指令碼」、「登入」,這樣一來,使用者在登入網域時就會自動新增印表機了。

如果不只一臺印表機,就照上面第二行的內容複製一行,並改為其他印表機的名稱即可。

如果要將這臺印表機設成預設印表機,就再加上下面這行:
WshNetwork.SetDefaultPrinter "\server name\印表機名稱"

kk_lee69 发表于 2016-6-8 17:35:08

回复 5# ffcloudy


    試試看 rundll32 printui.dll,PrintUIEntry /y /n 印表機名稱

ffcloudy 发表于 2016-6-14 15:34:26

谢谢 已解决 最后还是用的全程模拟操作

niqiuwoya 发表于 2016-8-9 13:10:00

啊啊啊啊啊
页: [1]
查看完整版本: [已解决] 怎么用命令直接打开打印机