Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как возвращать принтер, что был по умолчанию ? / 14 сообщений из 14, страница 1 из 1
15.02.2011, 12:58
    #37116885
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как возвращать принтер, что был по умолчанию ?
Всем доброго дня !

У меня например установлен по умолчанию некий принтер
(из сети,местного нету), лазерный LBP 1120 те галочка.
При выборе другого принтера, тоже установленного на моей машине
например матричный Epson, после работы с ним он становится уже
по умолчанию, но хотелось что бы все было как в настройках,
те чтобы по умолчанию остался тот же LBP 1120.
Как это обойти ?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 .....
arrayX = Ret
s = Join(arrayX, "")
CommonDialog1.CancelError = True
CommonDialog1.ShowPrinter
txtPrinterName.Text = "You printer name " & Printer.DeviceName
Open Printer.DeviceName For Output Access Write As # 1 
'Init Printer
Print # 1 , Chr( 27 ); Chr( 64 )
'ON Interval 1/8 inci
Print # 1 , Chr( 27 ); Chr( 48 )
Print # 1 , s
Close # 1 

Спасибо.
...
Рейтинг: 0 / 0
15.02.2011, 13:20
    #37116964
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как возвращать принтер, что был по умолчанию ?
CommonDialog1.ShowPrinter

как раз делает выбранный принтер принтером по умолчанию. запоминай текущий перед выбором и после печати возвращай.
...
Рейтинг: 0 / 0
15.02.2011, 14:04
    #37117143
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как возвращать принтер, что был по умолчанию ?
Для своего примерно так нашел:

Код: plaintext
1.
2.
3.
4.
5.
Dim p As vb.Printer
For Each p In vb.Printers
'If p.DeviceName = "LB 1120" Then
MsgBox p.DeviceName
Set Printer = p
Next

Но. Если приложение на разных машинах, а там свои принтеры
по дефолту ?

Не могу найти как вычислить его на местной машины ...
...
Рейтинг: 0 / 0
15.02.2011, 14:08
    #37117158
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как возвращать принтер, что был по умолчанию ?
наведу на мысль:

Код: plaintext
1.
2.
Private Sub Form_Load()
Debug.Print Printer.DeviceName
End Sub
...
Рейтинг: 0 / 0
15.02.2011, 14:11
    #37117176
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как возвращать принтер, что был по умолчанию ?
:) СПАСИБО .
...
Рейтинг: 0 / 0
15.02.2011, 17:31
    #37117792
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как возвращать принтер, что был по умолчанию ?
Konst_Oneкак раз делает выбранный принтер принтером по умолчанию. запоминай текущий перед выбором и после печати возвращай.

В принципе это не верный подход изначально - лучше просто печатать на нужный принтер не делая его принтером по умолчанию (и на фига это вообще надо?). Соответственно и возвращать ничего не нужно будет...
...
Рейтинг: 0 / 0
15.02.2011, 17:54
    #37117861
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как возвращать принтер, что был по умолчанию ?
лучше просто печатать на нужный принтер не делая его принтером по умолчанию

Согласен, но как ? При выборе из списка CommonDialog1.ShowPrinter , тот и становится что выбрали.
Рылся по инету, этот вопрос оказывается не так уж и легкий.
Если честно, я его еще не решил...
...
Рейтинг: 0 / 0
15.02.2011, 20:27
    #37118164
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как возвращать принтер, что был по умолчанию ?
Valeriu,

Код: plaintext
   ShellExecute  0 , "printto", Path_to_File, Chr( 34 ) & PrinterName & Chr( 34 ),  0 , SW_SHOWNORMAL
...
Рейтинг: 0 / 0
16.02.2011, 09:24
    #37118748
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как возвращать принтер, что был по умолчанию ?
Valeriuлучше просто печатать на нужный принтер не делая его принтером по умолчанию

Согласен, но как ? При выборе из списка CommonDialog1.ShowPrinter , тот и становится что выбрали.
Рылся по инету, этот вопрос оказывается не так уж и легкий.
Если честно, я его еще не решил...

Ну я отчеты делаю используя ActiveReports, там это можно сделать, например, так:

Код: plaintext
ar.Printer.DeviceName = "Имя принтера"

Ну а в простом VB6 для объекта Printer , скорей всего так:

Код: plaintext
Set p = Printers("Имя принтера")

И печать на полученный p .

Но это я не пробовал, так как предпочитаю работать с нормальной системой отчетов...
...
Рейтинг: 0 / 0
16.02.2011, 09:26
    #37118757
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как возвращать принтер, что был по умолчанию ?
ValeriuПри выборе из списка CommonDialog1.ShowPrinter , тот и становится что выбрали.

Этот диалог не пробовал, но если то что написано выше верно, то можно отказаться от этого диалога, заменив его своим.
...
Рейтинг: 0 / 0
16.02.2011, 11:14
    #37119096
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как возвращать принтер, что был по умолчанию ?
Этот диалог не пробовал, но если то что написано выше верно, то можно отказаться от этого диалога, заменив его своим.

Согласен, но писать что там уже есть (те же свойства, настройка etc) как то не очень.
Честно, я пробовал все что подсказали и что в инете нашел, но пока безрезультатно.
Видимо придется отказаться CommonDialog1.ShowPrinter
...
Рейтинг: 0 / 0
16.02.2011, 11:21
    #37119117
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как возвращать принтер, что был по умолчанию ?
Но это я не пробовал, так как предпочитаю работать с нормальной системой отчетов..

Я тоже работаю с VSVIEW, и за этого и весь сыр бор. Если не вернуться с простого матричного
на лазерный, что по умолчанию, тогда в отчетах при предварительном просмотре какозябры ...
Хотя конечно можно переключить самому, но это ведь для простого пользователя
согласитесь - не приемлемо .
...
Рейтинг: 0 / 0
16.02.2011, 13:32
    #37119726
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как возвращать принтер, что был по умолчанию ?
ValeriuНо это я не пробовал, так как предпочитаю работать с нормальной системой отчетов..
Я тоже работаю с VSVIEW, и за этого и весь сыр бор. Если не вернуться с простого матричного
на лазерный, что по умолчанию, тогда в отчетах при предварительном просмотре какозябры ...
Хотя конечно можно переключить самому, но это ведь для простого пользователя
согласитесь - не приемлемо .

Ну так не надо переключать принтер по умолчанию вообще. Нужно просто выводить на нужный принтер.

У меня программа печатает на принтере этикеток совершенно не трогая установленный по умолчанию принтер...
...
Рейтинг: 0 / 0
16.02.2011, 13:35
    #37119736
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как возвращать принтер, что был по умолчанию ?
ValeriuСогласен, но писать что там уже есть (те же свойства, настройка etc) как то не очень.
Честно, я пробовал все что подсказали и что в инете нашел, но пока безрезультатно.
Видимо придется отказаться CommonDialog1.ShowPrinter

Да что там писать-то? Примитив...
Вот так, к примеру, заполняется список подключенных принтеров в ComboBox-е:

Код: plaintext
1.
2.
3.
4.
    Dim p As VB.Printer
    
    For Each p In VB.Printers
        Me!cbLabelPrinter.AddItem p.DeviceName
    Next p

Ну и нафиг CommonDialog1.ShowPrinter при этом нужен?

Ну и прочее ничуть не сложней...
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как возвращать принтер, что был по умолчанию ? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]