강좌 / 팁

윈 도 우 설치된 기본프린터 확인 및 테스트페이지 인쇄 vbscript

2020.01.14 12:46

레마클로 조회:2553 추천:23

 

 

컴퓨터 수리업을 접은 지 5년 되어가네요.

업자분 들 필드에서 이용하실 수 있는 자료 들 틈나는 대로 올려 보겠습니다.

 

 

설치된 기본프린터 확인 및 테스트페이지 인쇄

윈도10 에서 저도 사용중입니다.

 

스크립트 시작

 

'--------------

If WScript.Arguments.length =0 Then

  Set objShell = CreateObject("Shell.Application")

  objShell.ShellExecute "wscript.exe", Chr(34) & _

  WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1

Else

'--------------

 

Dim objWMIService, colProcessList, objShell, objFSO, outFile

Set objShell = WScript.CreateObject("WScript.Shell")

Set objFSO = CreateObject("Scripting.FileSystemObject") 

curDir = objfso.GetParentFolderName(WScript.ScriptFullName) 

Set outFile = objFSO.CreateTextFile(curDir & "\DefPRNprint.cmd", True)

 

outFile.WriteLine "@echo off"

outFile.WriteLine "pushd ""%~dp0"""

outFile.WriteLine "setlocal"

outFile.WriteLine "for /f ""tokens=2*"" %%a in ('reg query ""HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows"" /v Device') do (set DefPRN1=%%b)"

outFile.WriteLine "for /f ""tokens=1 delims=,"" %%a in (""%DefPRN1%"") do set DefPRN=%%a"

outFile.WriteLine "start RUNDLL32 PRINTUI.DLL,PrintUIEntry /k /n ""%DefPRN%"""

outFile.WriteLine "endlocal"

outFile.Close

 

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _

 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colInstalledPrinters =  objWMIService.ExecQuery _

 ("Select * from Win32_Printer Where Default = TRUE")

 

For Each objPrinter in colInstalledPrinters

x=msgbox("★ 기본 프린터 : " & objPrinter.Name & "  ★" +vbCrLf+ "" +vbCrLf+ "            [  테스트 페이지를 인쇄할까요?  ]", 4, "기본 프린터 확인 & 테스트 페이지 인쇄")

Next

If x = VbYes Then

objShell.Run chr(34) & curDir & "\DefPRNprint.cmd" & Chr(34), 0, True

objFSO.DeleteFile(curDir & "\DefPRNprint.cmd")

Else

objFSO.DeleteFile(curDir & "\DefPRNprint.cmd")

Wscript.Quit

End If

End If

 

스크립트 끝

 

지후아빠님이 수정해주신 깔끔버전입니다.  

 

Dim objWMIService, colProcessList, objShell, objFSO, outFile

Set objShell = WScript.CreateObject("WScript.Shell")

Set objFSO = CreateObject("Scripting.FileSystemObject") 

curDir = objfso.GetParentFolderName(WScript.ScriptFullName) 

Set outFile = objFSO.CreateTextFile(curDir & "\DefPRNprint.cmd", True)

 

outFile.WriteLine "@echo off"

outFile.WriteLine "pushd ""%~dp0"""

outFile.WriteLine "setlocal"

outFile.WriteLine "for /f ""tokens=2*"" %%a in ('reg query ""HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows"" /v Device') do (set DefPRN1=%%b)"

outFile.WriteLine "for /f ""tokens=1 delims=,"" %%a in (""%DefPRN1%"") do set DefPRN=%%a"

outFile.WriteLine "start RUNDLL32 PRINTUI.DLL,PrintUIEntry /k /n ""%DefPRN%"""

outFile.WriteLine "endlocal"

outFile.Close

 

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _

 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'UTIL.exe'")

For Each objProcess in colProcessList

 objProcess.Terminate()

Next

 

Set colPrinters =  objWMIService.ExecQuery("Select * from Win32_Printer Where Default = TRUE")

For Each objPrinter in colPrinters

x = msgbox("★ 기본 프린터 : " & objPrinter.Name & "  ★" & vbCrLf & vbCrLf & _

"            [  테스트 페이지를 인쇄할까요?  ]", 4, "기본 프린터 확인 & 테스트 페이지 인쇄")

If x = VbYes Then objShell.Run chr(34) & curDir & "\DefPRNprint.cmd" & Chr(34), 0, True

Next

 

 

objFSO.DeleteFile(curDir & "\DefPRNprint.cmd")

 
번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
4040 윈 도 우| 윈도우 11/10, 빈폴더 무작위 생성 버그 해결하기 [12] gooddew 1390 12 11-20
4039 윈 도 우| pe 에서 간단히 다른pc 공유폴더를 네트워크 드라이브로 잡기 [1] heykevin 987 6 11-20
4038 소프트웨어| 엑셀 추가기능; Reading Layout(셀 좌표) 1.4 [25] 지후빠 2124 27 11-18
4037 윈 도 우| 한글판 IoT Enterprise (LTSC 2021) 만들기 [8] 디폴트 3520 15 11-18
4036 윈 도 우| DriveSnapshot 백업 복구 [17] 슈머슈마 2862 18 11-13
4035 소프트웨어| [Tip] AnyDesk 화이트리스트 등록 [5] asklee 1489 11 11-13
4034 윈 도 우| PNG_ICO (이미지 아이콘 변환) [7] 슈머슈마 1171 6 11-12
4033 소프트웨어| [추가기능1.1]엑셀 셀의 행-열 Auto-Highlight 하는 방법들 [77] 지후빠 2813 103 11-10
4032 윈 도 우| 윈도우11 암호 입력없이 로그인 만들기 [7] 하늘은높고 2704 8 11-10
4031 서버 / IT| 네트워크를 통해서 윈도우 동시 설치하기 (G4L) [12] gooddew 2971 14 11-08
4030 윈 도 우| 드라이브 스냅샷 백업 복구 - 재배포 [30] 슈머슈마 2679 43 11-07
4029 윈 도 우| 윈도우 11에서 윈도우 10 타일 시작메뉴 + 작업표시줄 그룹... [5] chosu 3871 0 11-04
4028 윈 도 우| 윈도우11 업데이트 후 캡처도구 단축키 안먹힐 때 해결 방법 [4] 깜인비랑 1833 3 11-03
4027 윈 도 우| EFI 파티션 관리하기 우클릭 메뉴에 넣기(추가) [12] maniaa 2274 19 11-01
4026 윈 도 우| Windows 11 에 핸드폰 연결해서 양방향 복사하기. [5] 펨토 2327 2 10-31
4025 윈 도 우| 시스템 종료 컨텍스트 메뉴 [13] 슈머슈마 1829 18 10-30
4024 기 타| 앱손 스캐너 드라이버 설치 [2] 슈머슈마 822 5 10-30
4023 윈 도 우| 윈도우11 메모리 누수를 막을 수 있다? [5] maniaa 3230 1 10-29
4022 윈 도 우| 윈도우 11 시작 단추 화면에서 '맞춤' 없애는 방법 [1] 하늘은높고 1461 1 10-29
4021 윈 도 우| 윈도우11 메모리 누수가 장난 아닙니다. [9] maniaa 4805 6 10-28
XE1.11.6 Layout1.4.8