不死心的我只好求救google大神了,找了幾分鐘後,在歪國人的論壇上,發現可以從登錄檔中去看到這台電腦所有印表機的連接埠(port),登錄檔的位址如下:
HKEY_CURRENT_USER/Software/Microsoft/WindowsNT/CurrentVersion/Devices
看到的畫面就如下圖:
由上圖可以發現,出問題的印表機,其port已經變成Ne06,與第一張圖的Ne05不同,也難怪程式碼無法觸發列印的動作了,所以只要把它再改回Ne05就沒問題了。此外,我再keep digging的結果,這個port是有機會自動變化的,因為它是網路的印表機的關係。
同時我也找到了程式碼可以直接秀出電腦所有印表機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
oreg.getstringvalue HKEY_CURRENT_USER, "Software\Microsoft\WindowsNT\CurrentVersion\Devices", reg, regvalue list1.additem reg & " on " & Mid(regvalue, InStr(regvalue, ",") + 1)
Next
=======================================================
再來就是要研究怎麼寫讓它隨著port而改變的語法了。
沒有留言:
張貼留言