Функция определения хэндла ЭУ WebBrowser - VB

Узнай цену своей работы

Формулировка задачи:

Вот функция определения хэндла ЭУ WebBrowser (работает из предположения, что на форме есть только ОДИН такой контрол):
Листинг программы
  1. Private Function GetWebBrowserHWND() As Long
  2. Dim retVal As Long
  3. Dim result As Long
  4. Dim hWndChild As Long
  5. Dim classString As String * 256
  6. hWndChild = GetWindow(Me.hwnd, GW_CHILD)
  7. While (result = 0) And (hWndChild <> 0)
  8. hWndChild = GetWindow(hWndChild, GW_HWNDNEXT)
  9. If hWndChild <> 0 Then
  10. retVal = GetClassName(hWndChild, classString, 256)
  11. ' Debug.Print classString
  12. If Left$(classString, InStr(classString, Chr$(0)) - 1) = 'Shell Embedding' Then result = 1
  13. End If
  14. Wend
  15. GetWebBrowserHWND = hWndChild
  16. End Function
В одном VB-проекте GetWindow находит окно 'Shell Embedding', а в другом - нет, хотя на форме ЭУ WebBrowser тоже есть! Пробовал перенести вызов этой функции из Form_Load в Form_Click (мало ли!) - по фигу: не находит - и всё тут! При всём при этом в ОБОИХ проектах ЭУ WebBrowser ЕСТЬ, что подтверждается через Spy++. Какие есть идеи?! PS: искать окно 'Internet Explorer_Server' - не предлагать!

Решение задачи: «Функция определения хэндла ЭУ WebBrowser»

textual
Листинг программы
  1. Private Function GetWebBrowserHWND() As Long
  2.     GetWebBrowserHWND = FindWindowEx(Me.hwnd, ByVal 0&, 'Shell Embedding', vbNullString)
  3. End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.429 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы