Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 | 2 |

 

  Вопрос: Отображение PDF Добавлено: 02.03.09 13:23  

Автор вопроса:  Леша | ICQ: 362231326 
Здравствуйте, есть такая задача: нужно показать документ pdf пользователю только для просмотра и печати, чтобы он не имел возможности его пересохранить и т.д. каким образом это можно реализовать? Пробовал через acroPDF.dll но никак не получилось блокировать меню правой кнопки.

Ответить

  Ответы Всего ответов: 20  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 02.03.09 14:29
Код, представленный ниже, убирает панель, но через меню ее снова можно восстановить..
  1. AcroPDF1.setShowToolbar False
  2. AcroPDF1.LoadFile "info.pdf"

В общем не знаю..

Ответить

Номер ответа: 2
Автор ответа:
 Леша



ICQ: 362231326 

Вопросов: 9
Ответов: 76
 Профиль | | #2 Добавлено: 02.03.09 14:39
Этим можно убрать панельинструментов сверху и аналогично скролбары - а по нажатии альт+ф8 она снова появиться - но да ладно. Меню по правой кнопке как убрать???

Ответить

Номер ответа: 3
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #3
Добавлено: 02.03.09 15:39
Сабклассировать контрол, не давать ничего делать по WM_RBUTTONDOWN, делов то! ;)

Ответить

Номер ответа: 4
Автор ответа:
 Леша



ICQ: 362231326 

Вопросов: 9
Ответов: 76
 Профиль | | #4 Добавлено: 02.03.09 15:49
О! Ща буду пробовать! Thank! ^)

Ответить

Номер ответа: 5
Автор ответа:
 Леша



ICQ: 362231326 

Вопросов: 9
Ответов: 76
 Профиль | | #5 Добавлено: 02.03.09 16:02
ха, а нету acroPDF1.hWnd чего творить?

Ответить

Номер ответа: 6
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #6
Добавлено: 02.03.09 17:47
Как нет, он что неоконный? Бывает конечно и такое, но вероятно просто неочевидным образом находится его hWnd. Надо поискать в дочерних окнах твоего приложения по имени класса (для начала перечисли дочерние окна формы с показом имени класса - узнгаешь имя класс и действуй).

Ответить

Номер ответа: 7
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #7
Добавлено: 02.03.09 19:03
Смотри скриншот:
http://mc-black.narod.ru/vba/acroread.jpg
Это твоя форма, в ней в 2-х контейнерах лежит документ. Сама форма находится поиском окон на рабочем столе (по имени класса и заголовку), далее находим дочернее окно по имени класса, начинающемуся с "F3 Server " , следовательно имеем hWnd контрола. А дальше сабклассинг.

Ответить

Номер ответа: 8
Автор ответа:
 Леша



ICQ: 362231326 

Вопросов: 9
Ответов: 76
 Профиль | | #8 Добавлено: 02.03.09 19:11
Посмотрел Adobe Acrobat 7.0 Browser Control Type Library 1.0 - там есть класс AcroPDF Member of AcroPDFLibCtl, но как то нет у него hWnd.

Ответить

Номер ответа: 9
Автор ответа:
 Леша



ICQ: 362231326 

Вопросов: 9
Ответов: 76
 Профиль | | #9 Добавлено: 02.03.09 19:30
Щас буду пробовать...

Ответить

Номер ответа: 10
Автор ответа:
 Леша



ICQ: 362231326 

Вопросов: 9
Ответов: 76
 Профиль | | #10 Добавлено: 02.03.09 21:05
Что то не могу разобраться с именем класса для acroPDF. Нахожу все контролы с помощью EnumChildWindows

Ответить

Номер ответа: 11
Автор ответа:
 GDK



Вопросов: 13
Ответов: 348
 Профиль | | #11 Добавлено: 03.03.09 13:01
 EnumChildWindows - Г-но. Пробуй ф-ции типа для поиска следующего дочернего окна. Если не знаешь какие - подскажу (есть опыт по управлению чужим приложением, там их и использовал). А может быть процессы разные у твоей проги и Adobe Acrobat 7.0 Browser Control Type Library 1.0. И не советую сабклассить. Лучше отправить какое-нибудь PostMessage(...... , чтоб кнопка стала неактивной и усё.

Ответить

Номер ответа: 12
Автор ответа:
 Леша



ICQ: 362231326 

Вопросов: 9
Ответов: 76
 Профиль | | #12 Добавлено: 03.03.09 16:08
Подкажите пожалуйста, а то я не понимаю :)

Ответить

Номер ответа: 13
Автор ответа:
 Леша



ICQ: 362231326 

Вопросов: 9
Ответов: 76
 Профиль | | #13 Добавлено: 03.03.09 16:09
Вчера получил список всех дочерних окон с их хэндлами и именами классов - и дальше не могу понять ничего - темные лес и куча дров

Ответить

Номер ответа: 14
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #14
Добавлено: 03.03.09 22:56
Попробуй с дочерними контролами (выборочно) сделать так:
  1. EnableWindow(hWnd, FALSE)

Или послать сообщение, чтобы сделать окно недоступным, вот так:
  1. SendMessage hWnd, WM_ENABLE, FALSE, 0

Ответить

Номер ответа: 15
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #15
Добавлено: 03.03.09 23:00
А дерево окон предварительно ты можешь посмотреть какой-нибудь утилитой, типа Spy++ из утилит с VC6 или любую аналогичную из множества диспетчеров окон.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам