Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запретить печать из TWebBrowser


Виктор ©   (2010-04-01 02:10:00) 

Здравствуйте! Хочу запретить печать из TWebBrowser по Ctrl-N. Перехватывать комбинацию Ctrl-N для решения этой задачи не хочется, как правильно быть?


Виктор   (2010-04-08 18:27:00) [1]

Да.. плюнул я на затею сделать как положено, оставил костыль в виде блокировки хоткея в TApplicationEvents.OnMessage


MonoLife   (2010-04-02 08:17:00) [2]

блин, ему ж перехват не хочется(


MonoLife   (2010-04-02 08:07:00) [3]

вариант:
TApplicationEvents на форму

В TApplicationEvents.onMessage пишем:

if (GetKeyState(VK_CONTROL) < 0) and (Msg.Message = WM_KEYDOWN) and (Msg.wParam = 80) then
 ShowMessage('Нельзя печатать!');

:)


Anatoly Podgoretsky   (2010-04-01 20:24:00) [4]

> Игорь Шевченко  (01.04.2010 20:19:08)  [8]

Самый полный Тенцер :-)


Игорь Шевченко   (2010-04-01 20:19:00) [5]

Тенцер на сайте у А.П.


Loginov Dmitry   (2010-04-01 20:11:00) [6]

Я когда-то тоже искал ответ на такой же вопрос.
Оказалось, что перехватить нажатие Ctrl+P можно до печати, но как отменить печать я найти не смог. Хотя и перекопал весь MSDN.
Решил не заморачиваться: после перехвата Ctrl+P вывожу пользователю сообщение какой он плохой и грохаю программу с помощью TerminateProcess().

Если найдешь что-нибудь, то отпишись, pls!


Виктор   (2010-04-01 10:10:00) [7]

Спасибо! Буду шерстить MSDN)


sniknik   (2010-04-01 10:05:00) [8]

не нужно ничего перехватывать, нужно настроить, команда та же, нужно просто вызвать этот же самый метод с параметрами "запрета печати по Ctrl-P" если такие есть (вот это и ищи, в msdn есть развернутый список, я не смотрел конкретно т.к. было не нужно), или более общее, запретить всю печать из объекта(это точно должно быть) и при нужде выполнять печать самому вышеприведенной командой.


Виктор   (2010-04-01 09:59:00) [9]

Я реализовал IWebBrowser2 для компонента, что бы перехватить и обработать вызов ExecWB и QueryStatusWB. Но когда в браузере нажимаешь Ctrl-P ни один из методов не вызывается. Да и понимания COM у меня недостаточно что бы копнуть глубже..


sniknik   (2010-04-01 09:28:00) [10]

это печать
WebBrowser.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER);

также можно сделать многое другое (когда смотрел это видел кучу других параметров) возможно и запрет печати тоже. поищи.


Виктор   (2010-04-01 08:55:00) [11]

Как полумеру можно вписывать в отображаемую страницу код:

<style type="text/css" media="print">
 BODY {display:none;visibility:hidden;}
</style>


Но это изврат)


Виктор   (2010-04-01 02:11:00) [12]

Простите опечатался, конечно имелась ввиду печать по Ctrl-P


Наверх

Титульная страница Поиск, карта сайта Написать письмо