Войти

Показать полную графическую версию : [решено] Удаление принтеров из командной строки


Страниц : 1 2 [3]

SharkyEXE
05-04-2020, 21:26
Iska

Здравствуйте.

Тогда, если Вы знаете, будьте так любезны, напишите альтернативные, не Wbem способы удаления принтера?

Я не знаток, не мага профессионал, просто я считал, что vbs или wmic - это разные способы удаления принтера

Теперь мне хочется, если это возможно, разные методы, разные технологии удаления принтера

Спасибо.

Iska
05-04-2020, 22:49
Разве что:
rundll32.exe printui.dll,PrintUIEntry /n "Epson Stylus C20 Series (M)" /dl

SharkyEXE
05-04-2020, 23:25
Iska

Здравствуйте.

Итого, подъитог

Абсолютно одинаковые способы удаления принтера (способы на Wbem, vbs = wmic, кому что нравится, можно использовать ОДНО ИЗ или сразу оба способа, функционально одно и тоже)

vbs (http://forum.oszone.net/post-2914404-19.html)
Option Explicit

On Error Resume Next

WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2").Get("Win32_Printer.DeviceID='Epson Stylus C20 Series (M)'").Delete_

WScript.Quit 0
wmic (http://forum.oszone.net/post-2914387-17.html)
wmic.exe Printer where "DeviceID='Epson Stylus C20 Series (M)'" delete

Альтернативный способ удаления принтера (способ не на Wbem)
rundll32 (http://forum.oszone.net/post-2915946-42.html)
rundll32.exe printui.dll,PrintUIEntry /n "Epson Stylus C20 Series (M)" /dl
Все верно написал или я ошибся, просьба поправить?

Iska
05-04-2020, 23:39
Угу. Только лучше будет написать как-то так:
1. Wbem:
а) WSH (VBScript): …
б) утилита командной строки wmic.exe: …
2.

SharkyEXE
22-08-2021, 13:56
Iska

Здравствуйте

Я могу ошибаться, просьба поправить, но я когда использую код перейти (http://forum.oszone.net/post-2914469-28.html), я код скомпилировал в exe файл, когда я запускаю exe файл, то если у меня нету принтера нету, то вываливается ошибка

Суть - можно Вас попросить, пожалуйста, в коде (http://forum.oszone.net/post-2914469-28.html) сделать проверку, мол:
1) если принтер Epson Stylus C20 Series (M) найдется, то для принтера Epson Stylus C20 Series (M) сделать команду
$oSWbemLocator.ConnectServer(".", "root\cimv2").Get("Win32_Printer.DeviceID='Epson Stylus C20 Series (M)'").Delete_
2) если принтера Epson Stylus C20 Series (M) нету, то для принтера Epson Stylus C20 Series (M) не делать команду
$oSWbemLocator.ConnectServer(".", "root\cimv2").Get("Win32_Printer.DeviceID='Epson Stylus C20 Series (M)'").Delete_

Пожалуйста, будьте так, любезны

Iska
24-08-2021, 23:31
SharkyEXE, попробуйте, например, так:
AutoItSetOption("MustDeclareVars", 1)

Local $oSWbemLocator = ObjCreate("WbemScripting.SWbemLocator")
Local $oSWbemObjectEx

For $oSWbemObjectEx In $oSWbemLocator.ConnectServer(".", "root\cimv2").InstancesOf("Win32_Printer")
If $oSWbemObjectEx.DeviceID = "Epson Stylus C20 Series (M)" Then
$oSWbemObjectEx.Delete_

ExitLoop
EndIf
Next

Exit(0)




© OSzone.net 2001-2012