|
0 / 0 / 0
Регистрация: 12.05.2010
Сообщений: 70
|
|
Как 'сфотографировать' webbrowser, расположенный за границами формы?02.05.2011, 19:28. Показов 1202. Ответов 4
Метки нет (Все метки)
Мир Вам!
На форме есть WebBrowser, расположенный за границами формы (т.е. не видим пользователю). Вопрос: Можно ли как-либо его 'сфотографировать' (вернее его содержимое). Ну, а получившуюся картинку уже отображать уменьшенной там в несколько раз. Главный вопрос как 'сфотографировать'?
0
|
|
| 02.05.2011, 19:28 | |
|
Ответы с готовыми решениями:
4
Как выделить текст в рамку с границами разной формы (word 2007) Как запустить Private Sub, расположенный внутри формы, при изменении TextBox'a на этой самой форме? |
|
Comanche
|
|
| 03.05.2011, 20:16 | |
|
Мелькания картинки не избежать, увы.
[code] Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Declare Function GetDC Lib 'user32.dll' ( _ ByVal hWnd As Long) As Long Private Declare Function ReleaseDC Lib 'user32.dll' ( _ ByVal hWnd As Long, _ ByVal hdc As Long) As Long Private Declare Function GetDesktopWindow Lib 'user32.dll' () As Long Private Declare Function BitBlt Lib 'gdi32.dll' ( _ ByVal hDestDC As Long, _ ByVal X As Long, _ ByVal Y As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal hSrcDC As Long, _ ByVal xSrc As Long, _ ByVal ySrc As Long, _ ByVal dwRop As Long) As Long Private Declare Function FindWindowEx Lib 'user32.dll' Alias 'FindWindowExA' ( _ ByVal hWnd1 As Long, _ ByVal hWnd2 As Long, _ ByVal lpsz1 As String, _ ByVal lpsz2 As String) As Long Private Declare Function CreateCompatibleBitmap Lib 'gdi32.dll' ( _ ByVal hdc As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long) As Long Private Declare Function CreateCompatibleDC Lib 'gdi32.dll' ( _ ByVal hdc As Long) As Long Private Declare Function DeleteObject Lib 'gdi32.dll' ( _ ByVal hObject As Long) As Long Private Declare Function SelectObject Lib 'gdi32.dll' ( _ ByVal hdc As Long, _ ByVal hObject As Long) As Long Private Declare Function GetWindowRect Lib 'user32.dll' ( _ ByVal hWnd As Long, _ ByRef lpRect As RECT) As Long Private Declare Function OpenClipboard Lib 'user32.dll' ( _ ByVal hWnd As Long) As Long Private Declare Function SetClipboardData Lib 'user32.dll' ( _ ByVal wFormat As Long, _ ByVal hMem As Long) As Long Private Declare Function EmptyClipboard Lib 'user32.dll' () As Long Private Declare Function CloseClipboard Lib 'user32.dll' () As Long ' Private Sub Form_Load() WebBrowser1.Left = -10000 ' << уводим за пределы формы WebBrowser1.Navigate 'www.ya.ru' End Sub ' Private Function GetWebBrowserHWND() As Long Dim lHwnd As Long ' определяем хэндл ЭУ WebBrowser: lHwnd = FindWindowEx(Me.hWnd, ByVal 0&, 'Shell Embedding', vbNullString) lHwnd = FindWindowEx(lHwnd, ByVal 0&, 'Shell DocObject View', vbNullString) GetWebBrowserHWND = FindWindowEx(lHwnd, ByVal 0&, 'Internet Explorer_Server', vbNullString) End Function ' Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) ' фотографируем окно вебброузера Dim mDC As Long, mBitmap As Long, wbrWidth As Long, wbrHeight As Long Dim rct As RECT, wbrHwnd As Long, tmpDC As Long wbrHwnd = GetWebBrowserHWND() tmpDC = GetDC(GetDesktopWindow()) mDC = CreateCompatibleDC(tmpDC) GetWindowRect wbrHwnd, rct wbrWidth = rct.Right - rct.Left wbrHeight = rct.Bottom - rct.Top mBitmap = CreateCompatibleBitmap(tmpDC, wbrWidth, wbrHeight) SelectObject mDC, mBitmap ' LockWindowUpdate wbrHwnd WebBrowser1.Left = 0 DoEvents BitBlt mDC, 0, 0, wbrWidth, wbrHeight, GetDC(wbrHwnd), 0, 0, vbSrcCopy WebBrowser1.Left = -10000 ' LockWindowUpdate 0& OpenClipboard Me.hWnd EmptyClipboard SetClipboardData vbCFBitmap, mBitmap CloseClipboard DeleteObject mBitmap DeleteObject mDC ReleaseDC G |
|
|
0 / 0 / 0
Регистрация: 12.05.2010
Сообщений: 70
|
|
| 03.05.2011, 21:59 [ТС] | |
|
Интересный способ. Спасибо.
Но вот проблеммка одна размер формы гораздо меньше размеров WebBrowser'a, т.е. в картинке получается кусок формы и еще то, что на рабочем столе... обломчик вот... А сфотографировать WebBrowser не выводя в видимую область никак нельзя?
0
|
|
|
Comanche
|
|
| 04.05.2011, 12:11 | |
|
Нельзя, похоже.
Пикчербокс - можно, если у него AutoRedraw = True. А вот WebBrowser - у меня не вышло. |
|
|
0 / 0 / 0
Регистрация: 12.05.2010
Сообщений: 70
|
|
| 06.05.2011, 07:50 [ТС] | |
|
Хорошо, т.е. плохо
))А если копать с другой стороны.... Можно ли в WebBrowser'e сделать Zoom? т.е. нужно открытую станичку уменьшить в n раз (причем не только шрифты а и картинки и т.д.)...
0
|
|
| 06.05.2011, 07:50 | |
|
Помогаю со студенческими работами здесь
5
Закрытие формы при клике за её границами Ограничить область перемещения рисунка границами формы Как сфотографировать в буфер ? Как сфотографировать обьект? Как сфотографировать Землю из космоса, потратив $100 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|