![]() |
Программное открытие окна очереди печати принтера Как программно открыть окно очереди печати принтера с помощью ScriptControl. В качестве параметра - строка с наименованием принтера. |
открыть или развернуть? ибо если принтер не локальный, то думаю никак. как развернуть впрочем тоже не знаю :-))) |
0-bvb > Придется допустить юзера до системной папки %systemroot%\system32\spool\printers\... |
Собсно... Const PRINTHOOD = &H1b& Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace(PRINTHOOD) Set objFolderItem = objFolder.Self Wscript.Echo objFolderItem.Path Set colItems = objFolder.Items For Each objItem in colItems Wscript.Echo objItem.Name Next |
scrptCtrl = Новый COMОбъект("MSScriptControl.ScriptControl"); scrptCtrl.language="vbscript"; scrptCtrl.addcode(" |Function OpenSpool(NamePrinter) |Set objShell = CreateObject(""Shell.Application"") |Set objFolder = objShell.Namespace(NamePrinter) |Set objFolderItem = objFolder.Self |Wscript.Echo objFolderItem.Path |Set colItems = objFolder.Items |For Each objItem in colItems |Wscript.Echo objItem.Name |Next |End Function"); scrptCtrl.run("OpenSpool", "\\ars-srv01\Kyocera FS-3920DN4"); пишет : Произошла исключительная ситуация (Ошибка выполнения Microsoft VBScript): Требуется объект: 'objFolder' Что я делаю не так с параметром ? |
(0) ИмяПринтераКакВСистеме = СписокПринтеров.ПолучитьЗначение(СписокПринтеров.ТекущаяСтрока()); whs = СоздатьОбъект("WScript.Shell"); //whs.Run("cmd.exe /c rundll32 printui.dll,PrintUIEntry /e /n """+СокрЛП(ИмяПринтераКакВСистеме)+"""",0,1); whs.Run("cmd.exe /c rundll32 printui.dll,PrintUIEntry /o /n """+СокрЛП(ИмяПринтераКакВСистеме)+"""",0,1); |
(5) Вот это мне больше нравится. Спасибо. |
Текущее время: 04:30. Часовой пояс GMT +3. |