因辦公室很多台列表機,就是說有時要用手動選紙匣,有時後要用自動選紙匣,那是否可以用.vbs指令程式執行兩次就可以把手動列表機設成預設的,若要使用自動選紙匣,用.vbs指令程式執行兩次改把自動選紙匣列表機改成預設的!還是說有軟體可以輔助?!
Hi,
建兩台 share Printer 使用不同的設定連到同一台實體印表機會不會比較容易?
參考看看囉
<pre class="c" name="code">
@ECHO OFF
TITLE PrnChange
SET Sec=100
SET Prn1=自動選紙那一台 <--改為實際印表機名稱
SET Prn2=手動選紙那一台 <--改為實際印表機名稱
REM 執行一次為手動(Prn2),執行二次為自動(Prn1)
IF EXIST "%~pd0Chico" (
DEL "%~pd0Chico"
rundll32 printui.dll,PrintUIEntry /n "%Prn1%" /y
ECHO 目前預設印表機為 "%Prn1%"
ECHO 十秒後將改用 "%Prn2%" 為預設印表機
ECHO 或將這個視窗閉以持續使用 "%Prn1%" 為預設印表機
pathping -p 100 -h 1 localhost >nul
rundll32 printui.dll,PrintUIEntry /n "%Prn2%" /y
) ELSE (
rundll32 printui.dll,PrintUIEntry /n "%Prn2%" /y
ECHO 這個訊息用點的看不到
ECHO 目前預設印表機為 "%Prn2%"
ECHO. >%~pd0Chico
)
用法:
將印表機名稱輸入後即可使用
VBScript...用WScript.Network的SetDefaultPrinter
或者使用WMI
WScript.Network的寫法如下
<pre class="c" name="code">
Option Explicit
Dim objNet,strPrinter
strPrinter = "你的印表機名稱"
Set objNet = CreateObject("WScript.Network")
objNet.SetDefaultPrinter strPrinter
WScript.Quit
WMI的寫法
<pre class="c" name="code">
strPrinter = "你的印表機名稱"
Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
strWQL = "select * from Win32_Printer WHERE name='" & strPrinter & "'"
Set objInstances = objWMI.ExecQuery(strWQL,,48)
For Each objInstance in objInstances
intResult = objInstance.SetDefaultPrinter
If intResult=0 Then
WScript.Echo "Set Default Printer to "&strPrinter
Exit For
End If
Next