注册 登录
编程论坛 VB6论坛

如何让用在打印机选择打印机进行打印啊

wcwycp 发布于 2015-04-17 15:52, 5863 次点击
On Error Resume Next
CommonDialog1.PrinterDefault = True
CommonDialog1.CancelError = True
CommonDialog1.ShowPrinter
If Err.Number <> 0 Then Exit Sub

在网上找到一段代码,可惜用户选择完打印机就把系统默认的打印机修改了,有没有不改变系统默认的打印的办法吗,谢谢。
8 回复
#2
lianyicq2015-04-17 17:14
msdn上就是这样说的。如果printerdefault设置为true,就会在系统注册表中改变系统默认打印机设置。当然你如果能和原设置相关的注册表内容保存下来,打印后再还原,也是一种办法。相关注册表项参见:https://support.。看来比较麻烦。
如果设为false,只能使用GDI调用来打印到指定的打印机。
参见https://msdn.
可以考虑用printer对象来打印,参见https://msdn.(v=vs.90).aspx
#3
wcwycp2015-04-17 17:26
看来使用VB打印选择打印机还真是麻烦,呵呵,非常感谢。
#4
wcwycp2015-04-17 17:28
有没有选择用户指定打印机进行的源码,麻烦贴出来分享下,谢谢。
#5
xzlxzlxzl2015-04-17 21:04
vb printer对象就可以选择打印机的。
#6
wcwycp2015-04-17 21:53
回复 5楼 xzlxzlxzl
具体使用方法有吗,网上的例子好象都不能使用,谢谢.
#7
lianyicq2015-04-19 13:59
以下是引用lianyicq在2015-4-17 17:14:20的发言:

msdn上就是这样说的。如果printerdefault设置为true,就会在系统注册表中改变系统默认打印机设置。当然你如果能和原设置相关的注册表内容保存下来,打印后再还原,也是一种办法。相关注册表项参见:https://support.。看来比较麻烦。
如果设为false,只能使用GDI调用来打印到指定的打印机。
参见https://msdn.
可以考虑用printer对象来打印,参见https://msdn.(v=vs.90).aspx


Dim i As Printer
Private Sub Form_Load()
For Each i In Printers
Text1.Text = Text1.Text & i.DeviceName & vbCrLf
Next
End Sub
以上示例列出所有打印机

若要设定打印机
If i.DeviceName = "指定的打印机名称" Then Set Printer = i: exit for
#8
wcwycp2015-04-19 19:39
回复 7楼 lianyicq
谢谢,我回头试下,非常感谢。
#9
wcwycp2015-04-20 08:39
确定好用,非常感谢。
1