![]() |
|
|
![]()
|
|
| ProfessorBraz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 17.7.2007 Репутация: нет Всего: нет |
Колеги программисты! Сталкнулся с проблемой замены принтера по умолчанию в WinXP. Короче говоря программа должна печатать на принтер, локальный или сетевой, но не обязательно на тот, который установлен в WinXP по умолчанию. Никак в сети не найду, как это сделать.
Зарание спасибо. |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
если печать производится через TPrinter, и нужно сменить принтер внутри программы, то поиск по PrinterIndex, SetPrinter...
если же нужно менять дефолтный принтер системы, то: SetDefaultPrinter How to retrieve and set the default printer in Windows |
|||
|
||||
| ProfessorBraz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 17.7.2007 Репутация: нет Всего: нет |
Первая часть вопроса решилась при помощи SetDefaultPrinter. Спасибо за совет. Но осталась не решенная часть задачи, а именно: На форме расположен объект TCppWebBrowser из которого и производится печать последством метода
CppWebBrowserPrint->ControlInterface->ExecWB(Shdocvw_tlb::OLECMDID_PRINT, Shdocvw_tlb::OLECMDEXECOPT_DONTPROMPTUSER, &vIn, &vOut); Другая форма, не перегружая прилдожение изменяет принтер по умолчанию. Причем в окне принтеров это прослеживается. Но объект TCppWebBrowser производит печать по предыдущему принтеру. Если программу перегрузить, то все ок. Как добиться того, чтобы без перезагрузки программы объект TCppWebBrowser знал куда ему осуществлять печать. В Эксплорере это както реализовано, т.к. вызывая контекстное меню принтера по правой кнопки мыши в диалоговом окне автоматически подсвечивается дефолтный принтер. А в объекте TCppWebBrowser нет или ему надо както сообщить. КАК? |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
||||
|
||||
| ProfessorBraz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 17.7.2007 Репутация: нет Всего: нет |
Это сообщение я посылаю но похоже TCppWebBrowser его не видит.
|
|||
|
||||
| ProfessorBraz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 17.7.2007 Репутация: нет Всего: нет |
Помощь нужена, коллеги!
Ни SendMessageTimeout(this->Handle, WM_SETTINGCHANGE, 0, (LPARAM)"windows", SMTO_NORMAL, 1000, NULL); ни SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"windows", SMTO_NORMAL, 1000, NULL); не помогают. |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
между прочим, IE при использовании тулбар-кнопки с изображением принтера(ну то бишь то же, что и у тебя - без диалога) также не учитывает факт смены дефолтного принтера. так что, видимо, нужно искать другие пути решения.
|
|||
|
||||
| ProfessorBraz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 17.7.2007 Репутация: нет Всего: нет |
Ну раз сам ИЕ не замечает смены принтера, тогда отбой. Спасибо за участие! Аватарка у тебя прикольная
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |