강좌 / 팁

윈 도 우 설치된 기본프린터 확인 및 테스트페이지 인쇄 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 - - -
4480 윈 도 우| Windows 업데이트를 사용하여 데이터를 잃지 않고 Windows ... [3] VᴇɴᴜꜱGɪ 858 5 04-23
4479 소프트웨어| pureBasic Glass 윈도우 및 버튼 021 [6] 입니다 885 14 04-20
4478 윈 도 우| WindowsXPE147-1빌더/나만의 PE를 만들자 시즌2 ?? 1탄 (... [55] update 지연서연아 1885 68 04-16
4477 서버 / IT| 하드 디스크 사용시간 초기화 하기 [6] gooddew 1766 9 04-15
4476 소프트웨어| 응답파일(unattend.xml) 교체 및 수정 - ChangeUnattend [14] update 무월 1174 39 04-13
4475 소프트웨어| AOMEI Backupper 백업실패 및 글씨 안보임 문제해결법 [5] 『ⓖⓤⓝ』 751 12 04-12
4474 윈 도 우| 윈도우 계정/자동로그인 버그 해결 방법 사가르마타 750 0 04-12
4473 윈 도 우| 원격 데스크톱..., 자격증명이 작동하지 않습니다... [1] 사가르마타 299 1 04-12
4472 윈 도 우| SSD 에서 파일 삭제를 주의해야 되는 이유 [3] gooddew 2201 12 04-10
4471 윈 도 우| 특정 폴더목록 자동열기 배치파일 [2] 메리아 688 13 04-09
4470 윈 도 우| 하드 디스크 아이콘 바꾸기 [11] 타천사둘리 1300 8 04-08
4469 소프트웨어| pureBasic 자동완성을 위한 프로젝트 만들기 [6] 입니다 1005 14 03-28
4468 윈 도 우| [uupdump] 윈도우 업데이트 및 드라이버(IRST&NVMe) 통... [17] 무월 2186 34 03-27
4467 소프트웨어| WimLib Api 백업.복원 미완성. 샘플 7가지. [10] 입니다 905 12 03-27
4466 소프트웨어| SDK(Software development kit) 에 대한 이해 [5] 입니다 587 7 03-27
4465 소프트웨어| pureBasic 구조체, Union 구조체 [4] 입니다 612 9 03-25
4464 소프트웨어| pureBasic 외부 함수 호출 [1] 입니다 355 9 03-25
4463 소프트웨어| pureBasic 포인트 기본 이해 [3] 입니다 360 10 03-25
4462 소프트웨어| purebasic Macro 기본 [3] 입니다 418 10 03-25
4461 소프트웨어| purebasic 함수 인수 기본 값 설정으로 생략하기 [2] 입니다 350 9 03-24
XE1.11.6 Layout1.4.8