如何选择指定的打印机打印

lkmlsp424 2005-01-26 09:24:56
我的电脑上装有两个打印机 一个是并口的 一个是usb口的
我如何通过程序代码随意的向这两个打印机输出文件呢?
...全文
386 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
creazyfish 2005-01-26
  • 打赏
  • 举报
回复
关键是要找到所有打印机,然后选择需要用的打印机把它设置为默认打印机!
我也提供个做法
Const HWND_BROADCAST = &HFFFF&
Const WM_WININICHANGE = &H1A
Private Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long
Private Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Dim S As String, Length As Long, hKey As Long
S = String(80, Chr(0))
PrinterName = "你要选择的打印机名称"
S = String(80, Chr(0))
Length = GetProfileString("devices", PrinterName, "", S, Len(S))
S = Left(S, Length)
Call WriteProfileString("windows", "device", PrinterName & "," & S)
Call SendMessage(HWND_BROADCAST, WM_WININICHANGE, &H7FFF&, ByVal "windows")
viena 2005-01-26
  • 打赏
  • 举报
回复
Dim X As Printer
For Each X In Printers
If X.DeviceName = "AGFA-AccuSet v52.3" Then
'设定为系统缺省打印机。
Set Printer = X
Debug.Print "缺省打印机已经设为AGFA-AccuSet v52.3"
Exit For
End If
Next
lkmlsp424 2005-01-26
  • 打赏
  • 举报
回复
调出打印机窗口肯定不行
因为我的程序中这两个打印机切换的速度非常频繁
有没有方法可以指定打印机的端口
落伍者 2005-01-26
  • 打赏
  • 举报
回复
从printers集合中选择!
Dim X As Printer
For Each X In Printers
If X.Orientation = vbPRORPortrait Then
'设定为系统缺省打印机。
Set Printer = X
' 终止查找打印机。
Exit For
End If
Next

Gamma_Beam 2005-01-26
  • 打赏
  • 举报
回复
'先显示打印机对话框供用户选择打印机
commondialog1.showprinter()
'设置用户选择的打印机为当前打印机
set printer=commondialog1.object
myhgyp 2005-01-26
  • 打赏
  • 举报
回复
有难度,调出打印机选择窗口让用户选择不行吗?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧