![]() |
|
Получить принтер по умолчанию из скрипта. | ☑ | ||
---|---|---|---|---|
0
masky
03.11.06
✎
12:10
|
есть скрипт:
On Error Resume Next Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2") If Err.Number <> 0 Then WScript.Echo Err.Number & ": " & Err.Description WScript.Quit End If For Each objPrn In objService.ExecQuery("SELECT * FROM Win32_Printer") If objPrn.Attributes And 4 Then WScript.Echo objPrn.Name Exit For End If Next как из него получить в переменную 1С этот принтер? |
|||
1
VasilyKushnir
03.11.06
✎
12:49
|
Может это натолкнет на мыслю
Процедура Сформировать() wshNetwork = createObject("WScript.Network"); oPrinters = wshNetwork.EnumPrinterConnections(); i = 0; Пока i < oPrinters.Count() - 1 Цикл Сообщить ("Порт " + oPrinters.Item(i+1)); i = i + 2; КонецЦикла; КонецПроцедуры Здесь я определяю все доступные для печати принтера. |
|||
2
masky
03.11.06
✎
13:07
|
эт понятно.. но мне к сожалению надо именно принтер по умолчанию..
|
|||
3
masky
03.11.06
✎
13:40
|
Процедура ПолучитьПринтерПоУмолчанию()
scrptCtrl=createobject("MSScriptControl.ScriptControl"); scrptCtrl.language="vbscript"; scrptCtrl.addcode(" |Function GetDefaultPrinter() |GetDefaultPrinter=vbNullString |Set objWMIService=GetObject(""winmgmts:"" _ |& ""{impersonationLevel=impersonate}!\\.\root\cimv2"") |Set colInstalledPrinters=objWMIService.ExecQuery _ |(""Select * from Win32_Printer"") |For Each objPrinter in colInstalledPrinters |If objPrinter.Attributes and 4 Then |GetDefaultPrinter=objPrinter.Name |Exit For |End If |Next |End Function"); СписокПринтеров.ДобавитьЗначение(scrptCtrl.run("GetDefaultPrinter")); КонецПроцедуры // ПолучитьПринтерПоУмолчанию |
|||
4
Эрнст
03.11.06
✎
13:45
|
(3) процесс WMI работает в асинхронном режиме ?
|
|||
5
masky
03.11.06
✎
13:54
|
(4) а хз.. где посмотреть?
|
|||
6
smaharbA
03.11.06
✎
13:57
|
//*******************************************
Функция ПринтерПоУмолчанию() Скрипт=createobject("MSScriptControl.ScriptControl"); Скрипт.language="javascript"; Скрипт.TimeOut=-1; Локатор=СоздатьОбъект("wbemscripting.swbemlocator"); Сервис=Локатор.ConnectServer(); Скрипт.AddObject("Принтеры",Сервис.ExecQuery("Select * from Win32_Printer")); Перечисленные=Скрипт.Eval("new Enumerator(Принтеры)"); Пока Перечисленные.atEnd(0)=0 Цикл Если Перечисленные.item(0).Attributes % 8 / 4 = 1 Тогда Возврат Перечисленные.item(0).DriverName; Иначе //Сообщить(""+Перечисленные.item(0).Name+"; "+Перечисленные.item(0).Attributes); КонецЕсли; Перечисленные.moveNext(0); КонецЦикла; КонецФункции |
|||
7
smaharbA
03.11.06
✎
13:58
|
||||
8
masky
03.11.06
✎
14:08
|
(6)(7) спасибо
|
|||
9
VasilyKushnir
03.11.06
✎
14:31
|
wshPrint = CreateObject("WScript.Shell");
Prn = wshPrint.RegRead("HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device"); Сообщить (Prn); В Prn - принтер по умолчанию (вытаскиваешь все до первой запятой). |
|||
10
masky
03.11.06
✎
14:36
|
(9) прав на реестр нету и никто не даст..
|
|||
11
VasilyKushnir
03.11.06
✎
14:37
|
Так ведь нужно то всего право на чтение.
|
|||
12
smaharbA
03.11.06
✎
14:39
|
(10) есть на это права
|
|||
13
VasilyKushnir
03.11.06
✎
14:45
|
Ребята, а можно я свои 5 копеек вставлю - не хочется отдельную тему открывать.
Планируем менять принтера НР1200 (задрали уже). НР1160 дороговат, но с 1С в терминалке очень хорошо дружит. Предлагают НР1018 (у нас в Украине он в 2 раза дешевле НР1160). Кто нибудь может что сказать хорошего об этой железяке? Интерисует работа с 1С под терминалами на 2003 сервере. Локально скорее всего ХР Проф. |
|||
14
VasilyKushnir
03.11.06
✎
14:50
|
Кстати, masky, а скрипты в вопроссе ты не на http://script-coding.info/ взял?
Там же и готовое решение лежит... |
|||
15
smaharbA
03.11.06
✎
14:50
|
Это таже "лягушка" как и 1100 только в другой обертке, есть и сетевой вариант, если печатать листов 50-100 в день еще подюжит немного, если до полутыши то хана
|
|||
16
Рупор2
03.11.06
✎
14:51
|
||||
17
AeDen
03.11.06
✎
14:52
|
(13) ХП - лажа.
|
|||
18
VasilyKushnir
03.11.06
✎
15:03
|
(15) Спасибо. Значит не подходит - в среднем 250-300 листов в день надо. А что, кроме НР можете хорошее (и не слишком дорогое) присоветовать?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |