找回密码
 加入
搜索
查看: 3164|回复: 8

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

  [复制链接]
发表于 2016-6-5 11:02:43 | 显示全部楼层 |阅读模式
本帖最后由 ffcloudy 于 2016-6-14 15:35 编辑

打印机的首选项设置有点问题 想做一个脚本 自动修改打印机首选项设置 但是网上查了一下资料 貌似不能直接修改注册表来修改首选项的默认设置 只能通过模拟操作 前面的问题我自己试了一下 所以打算另外采取一种方案 现在遇到一个问题  因为打印机的型号和数量每台机器不一致 所以在AU3中怎么直接打开默认打印机了 。。
发表于 2016-6-6 15:45:16 | 显示全部楼层
逛任何坛子,请学会搜索,看你是新人,给你一次机会。
实测好用
AU3批处理:RunWait(@ComSpec & " /c " & 'rundll32 printui.dll,PrintUIEntry /y /n \\完整的打印机名称(含IP地址)',"", @SW_HIDE)
AU3 函数:
#Include <WinAPI.au3>
_WinAPI_SetDefaultPrinter($sPrinter)


$sPrinter 默认打印机的名称. 对于远程打印机, 名称格式为 \\服务器\打印机名称
对于本地打印机, 名称格式是打印机的名称. 如果这个参数为"", 或已经有一个默认打印机, 此函数不执行任何操作.
如果没有默认打印机, 这个函数设置默认打印机为第一台打印机;
如果有, 则枚举本地计算机上安装的打印机.
 楼主| 发表于 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("[CLASS:#32770]","",10)
                                Send("^{tab 4}")
                                Send("{DOWN 8}")
                                Send("{right}")
                                Sleep(100)
                                Send("{DOWN 2}")
                                Sleep(500)
                        Send("{Enter}")
                        Send("{Enter}")
发表于 2016-6-7 08:22:06 | 显示全部楼层
sorry,是我没看清,理解错误了。
“所以我用脚本修改完之后重新打开打印机首选项之后系统还是默认采取的标准设定 不是我修改后的设置 ...”
-------试试添加这个语句呢?
#RequireAdmin
 楼主| 发表于 2016-6-7 09:50:00 | 显示全部楼层
回复 4# qqgghh1
这个我尝试过了 系统还是只认标准设定 目前我试过的唯一能修改标准设定的就是直接打开打印机然后修改而不是用命令行调用出来的。
发表于 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\印表機名稱"
发表于 2016-6-8 17:35:08 | 显示全部楼层
回复 5# ffcloudy


    試試看 rundll32 printui.dll,PrintUIEntry /y /n 印表機名稱
 楼主| 发表于 2016-6-14 15:34:26 | 显示全部楼层
谢谢 已解决 最后还是用的全程模拟操作
发表于 2016-8-9 13:10:00 | 显示全部楼层
啊啊啊啊啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-24 14:56 , Processed in 0.082797 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表