[已解决]求助。如何设定默认打印机?
本帖最后由 ac5474012 于 2010-7-27 09:09 编辑我想让默认打印机在两个打印机之间切换,
请问如何检查并更改默认打印机? 设置本地计算上当前用户的默认打印机
#Include <WinAPI.au3>
_WinAPI_SetDefaultPrinter($sPrinter) 设置本地计算上当前用户的默认打印机
#Include
_WinAPI_SetDefaultPrinter($sPrinter)
lynfr8 发表于 2010-7-15 14:49 http://www.autoitx.com/images/common/back.gif
$sPrinter,这是打印机名称把?请问如何判断现在的默认打印机是那一台? 本帖最后由 afan 于 2010-7-15 17:46 编辑
#include <WinAPIEx.au3>
msgbox(0, '默认打印机', _WinAPI_GetDefaultPrinter()) http://support.microsoft.com/kb/156212/zh-cn
$printername = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows", "Device")
MsgBox(4096, "默认打印机-详细信息:", $printername )
如果仅仅是为了获取打印机名称,通过StringSplit 字符串控制轻易做到 学习了,我是通过ObjCreate("WScript.Network") 来实现的:
http://www.autoitx.com/thread-14694-1-1.html 顺势做了个小工具~
#include <WinAPI.au3>
GUICreate('切换默认打印机', 380, 70)
GUICtrlCreateLabel('默认打印机:', 10, 15, 90, 17)
$combo = GUICtrlCreateCombo('', 85, 10, 210, 20, 0x0003) ; $CBS_DROPDOWNLIST=0x0003
GUICtrlSetData(-1, EnumPrinter())
GUICtrlSetData(-1, GetDefaultPrinterName())
$Button = GUICtrlCreateButton('应用(&Y)', 295, 9, 70, 22)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
Exit
Case $Button
$sPrinter = GUICtrlRead($combo)
_WinAPI_SetDefaultPrinter($sPrinter)
If GetDefaultPrinterName() = $sPrinter Then MsgBox(64, '完成', '设置成功~ ')
EndSwitch
WEnd
Func EnumPrinter()
Local $data = '', $i = 1, $Val
While 1
$Val = RegEnumVal('HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices', $i)
If @error <> 0 Then ExitLoop
$data &= $Val & '|'
$i += 1
WEnd
Return $data
EndFunc ;==>EnumPrinter
Func GetDefaultPrinterName()
Return StringRegExpReplace(RegRead('HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows', 'Device'), '(.+?),.+', '$1')
EndFunc ;==>GetDefaultPrinterName ...好多人回帖,我好感动。我这就试试去。 学习到许多东西,谢谢 7楼的代码精彩 记下一个记号,以后用着。 回复 7# afan
这个不错,学习中 各位楼主辛苦了,感谢分享。 嘿嘿,学习学习,做个记号! 一题多解,很好的气氛。
页:
[1]
2