Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 12.05.2010
Сообщений: 70

Как 'сфотографировать' webbrowser, расположенный за границами формы?

02.05.2011, 19:28. Показов 1202. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мир Вам!
На форме есть WebBrowser, расположенный за границами формы (т.е. не видим пользователю).
Вопрос: Можно ли как-либо его 'сфотографировать' (вернее его содержимое). Ну, а получившуюся картинку уже отображать уменьшенной там в несколько раз. Главный вопрос как 'сфотографировать'?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.05.2011, 19:28
Ответы с готовыми решениями:

Как узнать полную высоту формы (вместе с границами окна)
Как узнать полную высоту формы (вместе с границами окна)? То есть чтобы поместить еще одну форму точно на границе первой

Как выделить текст в рамку с границами разной формы (word 2007)
Скажите, пожалуйста, как поместить текст (не страницу) в рамку с разными границами (слева - коричневая, справа - зеленая и т.д.)? ...

Как запустить Private Sub, расположенный внутри формы, при изменении TextBox'a на этой самой форме?
Здравствуйте! Недавно столкнулся с со следующей проблемой: На форме расположено примерно 120 TextBox'ов, и несколько Label'ов. Когда...

4
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.05.2011, 07:50
Помогаю со студенческими работами здесь

Закрытие формы при клике за её границами
Здравствуйте) Есть родительская форма на ней находится несколько кнопок. При нажатии на кнопку открывается дочерняя форма через...

Ограничить область перемещения рисунка границами формы
Вот который день мучаюсь над игрушкой а все некак невыходит:( текушая проблема как ограничить форму? ну т.е. я двигаю рисунок курсором и...

Как сфотографировать в буфер ?
Всем привет. Посоветуйте способ, как сфотографировать: public void onPictureTaken(byte paramArrayOfByte, Camera camera) ...

Как сфотографировать обьект?
Можно ли создать картинку jpeg и запомнить ее из обьекта например &lt;table&gt;?

Как сфотографировать Землю из космоса, потратив $100
Для того, чтобы получить уникальные фотоснимки Земли из космоса, отнюдь не обязательной оказывается длительная подготовка научной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Настройки 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. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru