hbyu2003 发表于 2007-7-26 11:49:00

有个问题一直困扰着我,怎么用VBA获得系统的默认打印机

我做了个一键打印程序,设置打印机一项不知怎样实现,只能指定好打印机名称,但如果换一台电脑,连接的是另外一台打印机就不能打印了,如果能指定为系统的默认打印机就好了。

fjfhgdwfn 发表于 2007-7-31 13:59:00

&nbsp;Dim plotDevices As Variant<br/>&nbsp;&nbsp;&nbsp; plotDevices = Layout.GetPlotDeviceNames()<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Dim x As Integer<br/>&nbsp;&nbsp;&nbsp; For x = LBound(plotDevices) To UBound(plotDevices)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ComboBox2.AddItem plotDevices(x)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; Next<p></p>

lafare 发表于 2007-8-2 22:45:00

楼上正解,如果排队掉后辍是PC3的打印机的话,剩下的就是系统打印机了.

hbyu2003 发表于 2007-8-3 08:04:00

以上只能找到打印机列表,但如果系统有多台打印机,就无法判断哪台是系统默认的打印机,郁闷!!!

StartMe 发表于 2007-8-4 23:04:00

<p>试试这个方法行不行,获取系统打印机列表:</p><p>Dim X1 As Printer<br/>Dim DefaultPrinter As Variant<br/>x = -1<br/>For Each X1 In Printers<br/>&nbsp;&nbsp;&nbsp; CboPrinter.AddItem X1.DeviceName<br/>&nbsp;&nbsp;&nbsp; If x = -1 Then DefaultPrinter = X1.DeviceName<br/>&nbsp;&nbsp;&nbsp; x = x + 1<br/>Next<br/></p>

hbyu2003 发表于 2007-8-5 09:59:00

<p>在VB中可以获得系统的默认打印机,只好在vb中生成一个DLL文件在CAD中加载了。谢谢大家</p>

天龙八部 发表于 2007-8-14 18:08:00

不错,不过选打印点上一步不就行了吗?即使编程也最多节约一两秒种

英雄无敌 发表于 2007-8-15 16:06:00

layout.configname应该就是缺省的打印机吧
页: [1]
查看完整版本: 有个问题一直困扰着我,怎么用VBA获得系统的默认打印机