Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2009, 00:20   #1
БуреВестник
Пользователь
 
Регистрация: 19.09.2009
Сообщений: 69
По умолчанию Вход в свойства принтера.

Как войти в свойства принтера?
БуреВестник вне форума Ответить с цитированием
Старый 11.10.2009, 00:46   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Только через API. А зачем?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 11.10.2009, 00:53   #3
БуреВестник
Пользователь
 
Регистрация: 19.09.2009
Сообщений: 69
По умолчанию

Как это через API?
Да и сам уже не знаю, зачем. По инерции пишу про принтера. Просто ради интереса войти в принтер через код.
БуреВестник вне форума Ответить с цитированием
Старый 11.10.2009, 00:53   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

в смысле получить доступ к свойствам, а не вызвать диалог?
...подключите модули - printers,winspool. Создайте, скажем p:= TPrinter.Create; а уже p- даст вам свойства...

настройки печати будут доступны через функцию GetDeviceCaps(DC:HDC,Index:integer) , где в качестве dc - подставьте p.handle

cписок принтеров через p.Printers, а выбор текущего через p.PrinterIndex
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 11.10.2009, 01:02   #5
БуреВестник
Пользователь
 
Регистрация: 19.09.2009
Сообщений: 69
По умолчанию

raxp
дай ссылку на ресурсы. Я просто не понимаю, о чём ты пишешь. Гляну завтра.
Да и это что такое p:= TPrinter. Это какой язык программирования?

Последний раз редактировалось БуреВестник; 11.10.2009 в 01:18.
БуреВестник вне форума Ответить с цитированием
Старый 11.10.2009, 01:25   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Через функции WinAPI (Application Programming Interface — интерфейс прикладного программирования). Это особый вид функций, с помощью который осуществляется программный доступ к другим приложениями в операционных системах Windows.
Если кратко, то нужно вызвать диалог печати (Dialogs(wdDialogFilePrint).Show), затем определить идентификатор этого диалога печати в операционной системе (API-функция FindWindow), затем в этом окне найти кнопку, которая открывает окно свойств принтера (API-функция EnumChildWindows), программно нажать на эту кнопку (API-функция PostMessage). После этого откроется диалог свойств принтера, окно которого тоже нужно найти, затем найти в нем нужные нам элементы: текстовые поля, выпадающие списки и т.д. Отметить их или изменить их содержимое, программно нажать «OK» и запустить печать.
Вопрос: а оно вам нужно?
По-моему, гораздо проще настроить принтер один раз, а затем пускать на печать документы с настройками по умолчанию.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 11.10.2009, 01:28   #7
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от БуреВестник Посмотреть сообщение
…Да и это что такое p:= TPrinter. Это какой язык программирования?
Это Delphi . Пока я писал предыдущее сообщение, вы уже два поста успели сварганить.
Да… Нужно увеличивать скорость слепого набора
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 11.10.2009, 01:37   #8
БуреВестник
Пользователь
 
Регистрация: 19.09.2009
Сообщений: 69
По умолчанию

Спасибо. Завтра почитаю. Я тоже собираюсь заниматься в свободное время Delphi.
БуреВестник вне форума Ответить с цитированием
Старый 11.10.2009, 11:30   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

to БуреВестник
Цитата:
Просто ради интереса войти в принтер через код
Цитата:
Я просто не понимаю, о чём ты пишешь
- просто ради интереса... интересный вы человек
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.10.2009, 08:51   #10
БуреВестник
Пользователь
 
Регистрация: 19.09.2009
Сообщений: 69
По умолчанию

Цитата:
Вопрос: а оно вам нужно?
По-моему, гораздо проще настроить принтер один раз, а затем пускать на печать документы с настройками по умолчанию.
Я вспомнил, зачем это было мне нужно.
В Excel есть существенная недоработка (которой кстати нет в OpenOffice). Предположим ситуацию:
  1. Книга состоит из 100 листов.
  2. Необходимо распечатать всю книгу в режиме Двусторонняя печать.
  3. Для этого надо щёлкнуть в диалоговом окне Печать по кнопке Свойства и зайти в программу принтера, чтобы поставить галочку Двусторонняя печать.
  4. В чём недоработака Excel - надо эту галочку ставить для каждого листа, т.е. нужно сделать действие 100 раз. Но нужно учитывать, что книга с таким количеством листов тяжела для среднего компьютера, которые распространены в организациях, соответственно всё это будет сопровождаться ужасным торможением.
  5. Что нужно сделать, нужно написать макрос, который будет ставить галочку Двусторонняя печать.
Цитата:
По-моему, гораздо проще настроить принтер один раз, а затем пускать на печать документы с настройками по умолчанию.
Пока всё это писал, задумался об этой цитате, и вдруг меня осенило, что надо в одном месте посмотреть: диалоговое окно Печать - Свойства - Но перейти не туда, где ставится галочка Двусторонняя печать, а на другую вкладку для установки настроек принтера по умолчанию. Только вот принтера сейчас нет, поэтому не смогу посмотреть, можно ли там сделать так, чтобы по умолчанию принтер печатал Двустороннюю печать. Вот чёрно-белую печать по умолчанию можно сделать (тоже проблема для распечатки файлов Excel - если принтер цветной, а нужна ч/б печать, то галочку тоже надо ставить для каждого листа).

Последний раз редактировалось БуреВестник; 12.10.2009 в 08:56.
БуреВестник вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Звуковой вход Betty Компьютерное железо 2 08.05.2009 01:38
Вход 5 рублей...))))) Seriy8888 Помощь студентам 23 29.03.2009 13:59
Вход в админку (PHP) Lain PHP 4 01.03.2009 22:13
Вход limon PHP 4 14.01.2009 17:46
Контроль принтера Noor Общие вопросы Delphi 0 06.11.2008 20:43