Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Программное открытие окна очереди печати принтера (http://forums.kuban.ru/f1040/programmnoe_otkrytie_okna_ocheredi_pechati_printera-4221572.html)

bvb 20.05.2013 11:03

Программное открытие окна очереди печати принтера
 
Как программно открыть окно очереди печати принтера с помощью ScriptControl. В качестве параметра - строка с наименованием принтера.

qweqwe123123 20.05.2013 12:36

открыть или развернуть? ибо если принтер не локальный, то думаю никак. как развернуть впрочем тоже не знаю :-)))

VZ 20.05.2013 13:16

0-bvb > Придется допустить юзера до системной папки %systemroot%\system32\spool\printers\...

VZ 20.05.2013 13:21

Собсно...
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

bvb 21.05.2013 10:21

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'

Что я делаю не так с параметром ?

Ёпрст 21.05.2013 11:57

(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);

bvb 21.05.2013 13:14

(5) Вот это мне больше нравится. Спасибо.


Текущее время: 14:49. Часовой пояс GMT +3.