標題:
[發問]
如何取得印表機的PORT?
[打印本頁]
作者:
PKKO
時間:
2015-7-13 10:55
標題:
如何取得印表機的PORT?
網路上找到的都是用Application.Printer.Port
但是vba不支援
因為網路印表機的port會更動,導致雖然印表機名稱相同
但是port錯誤導致無法列印
作者:
GBKEE
時間:
2015-7-14 06:01
回復
1#
PKKO
可參考一下
作者:
PKKO
時間:
2015-7-14 14:24
回復
2#
GBKEE
感謝,這篇的功能跟我的程式碼不一樣,我目前的方式可以自動列出,也可以透過程式自動選擇印表機並且用測試的方式找出port,但這篇多了一個功能(彈跳視窗選擇印表機!)
Dim reg As Variant, oreg As Object, mystr As Variant
Const HKEY_CURRENT_USER = &H80000001
Set oreg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
oreg.enumvalues HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Devices", mystr, Arr
For Each reg In mystr
If Left(reg, Len(Sheets("其他").[k2])) = Sheets("其他").[k2] Then '找出類似名稱的印表機
Exit For
End If
Next
'測試看看是哪一個Port
For i = 0 To 999
On Error Resume Next
If i < 10 Then X = "0" & i Else X = i
If i = 0 Then
Application.ActivePrinter = reg & " on nul:"
If Application.ActivePrinter = reg & " on nul:" Then Exit For
End If
Application.ActivePrinter = reg & " on Ne" & X & ":" '設定指定的印表機
If Application.ActivePrinter = reg & " on Ne" & X & ":" Then Exit For
Next
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)