konto usunięte

Temat: Czyszczenie drukarek w Windows 2000

Skrypt czyści uszkodzone sterowniki drukarek w Windows 2000
(np. gdy wywala się usługa spooler). Po usunięciu można
"na czysto" zainstalować właściwe sterowniki.


--------------------------------------------------------------
; skrypt czyści sterowniki drukarek w systemie Windows 2000
; Dominik Ałaszewski 2005

Opt("RunErrorsFatal", 0)

$pytanko=MsgBox(52,"UWAGA!","Wszystkie sterowniki drukarek zostaną wyczyszczone!" & @CRLF & @CRLF & "Kontynuować?")

If $pytanko=7 Then Exit 0

ProgressOn ( "Czyszczenie drukarek", "Proszę czekaj...", "")
ProgressSet ( 10, "Wyłączam usługę spooler")
Sleep(2000)

; zatrzymanie spoolera
RunWait(@ComSpec & " /c " & 'net stop spooler', "", @SW_HIDE)

ProgressSet ( 20, "Usuwam drukarki z rejestru")
Sleep(2000)

; Usunięcie drukarek
$klucz="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print\Printers"
Skasuj_podklucze($klucz)
ProgressSet ( 30, "Usuwam sterowniki drukarek z rejestru")
Sleep(2000)

; Usunięcie sterowników
$klucz="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86\Drivers\Version-2"
Skasuj_podklucze($klucz)
$klucz="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86\Drivers\Version-3"
Skasuj_podklucze($klucz)

ProgressSet ( 50, "Usuwam z dysku bufor wydruku")
Sleep(2000)

; usunięcie skeszowanego wydruku
$katalog=@WindowsDir & "\system32\spool\printers\*.*"
RunWait(@ComSpec & " /c " & 'del /F /Q /S ' & $katalog, "", @SW_HIDE)

ProgressSet ( 70, "Usuwam z dysku pliki sterowników")
Sleep(2000)

; usunięcie plików sterowników
$katalog=@WindowsDir & "\system32\spool\drivers\w32x86\2\*.*"
RunWait(@ComSpec & " /c " & 'del /F /Q /S ' & $katalog, "", @SW_HIDE)

$katalog=@WindowsDir & "\system32\spool\drivers\w32x86\3\*.*"
RunWait(@ComSpec & " /c " & 'del /F /Q /S ' & $katalog, "", @SW_HIDE)

ProgressSet ( 90, "Ustawiam właściwe parametry usługi spooler")
Sleep(2000)

; właściwe parametry usługi spooler
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler","DependOnService","REG_BINARY","5200500043005300530000000000")

ProgressSet ( 100, "Uruchamiam usługę spooler")
Sleep(2000)

; uruchomienie spoolera
RunWait(@ComSpec & " /c " & 'net start spooler', "", @SW_HIDE)
ProgressOff()

MsgBox(64,"Gotowe","Zakończone!")
Exit 0

; -- koniec programu głównego -------------------------------------------

Func Skasuj_podklucze($klucz)

Do
$kulczyk = RegEnumKey($klucz, 1)
If $kulczyk="" Then ExitLoop
RegDelete ($klucz & "\" & $kulczyk)
Until $kulczyk=""

EndFunc