Альтернатива контролю inet & webbrowser для получения только HTML? - PullRequest
1 голос
/ 24 декабря 2011

Я хотел бы загрузить только HTML-код в моей программе VB6. Webbrowser элемент управления хорош, но он зависает, а также имеет проблемы, такие как необходимость отключить JavaScript, рис и т. Д., Чтобы получить только HTML

Элемент управления Inet лучше, но он "глючит"

Есть ли другой контроль?

Ответы [ 4 ]

4 голосов
/ 24 декабря 2011

Если вы хотите загрузить только HTML-код страницы, вы можете легко использовать Winsock control.

Private Sub Form_Load()
  Winsock1.Connect "stackoverflow.com", 80
End Sub

Private Sub Winsock1_Close()
  Winsock1.Close
End Sub

Private Sub Winsock1_Connect()
  Winsock1.SendData "GET /questions/8624871/vb6-alternative-to-inet-webbrowser-control HTTP/1.1" & vbCrLf & "Host: stackoverflow.com" & vbCrLf & vbCrLf
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  Dim s As String

  Winsock1.GetData s, vbString
  RichTextBox1.Text = RichTextBox1.Text & s
End Sub
3 голосов
/ 24 декабря 2011

Я предлагаю разместить WebKit.NET в приложении VB 6 так же, как и любой другой элемент управления .NET.

Хотя это элемент управления .NET, что означает, что онне будет изначально работать с VB 6, возможно использовать элементы управления, разработанные в .NET, с приложением VB 6.Microsoft предоставляет Interop Forms Toolkit в качестве механизма взаимодействия между двумя языками.

По сути, вы будете использовать один из языков .NET (это не обязательно должен быть VB.NET).; вы также можете использовать C #) для создания ActiveX DLL, содержащей ваш UserControl и зарегистрировать ее для COM-взаимодействия.Затем вы можете добавить этот элемент управления ActiveX в ваш проект VB 6 и подключиться для обработки возникающих событий.

Более подробный пример того, как это сделать , можно найти здесь, в CodeProject или здесь, на CodeGuru .

Действительно, этот подход не будет тривиальным для реализации.Но я подозреваю, что это ваша единственная альтернатива объединенному элементу управления WebBrowser, учитывая, что IE в значительной степени доминировал на рынке браузеров, когда VB 6 был популярен, и никто больше не разрабатывает новые элементы управления для VB 6.

2 голосов
/ 27 декабря 2011

Вам не нужны вызовы API, вам не нужно WinSock, вам не нужно Inet, вам не нужно взаимодействие с WebKit.Просто сделайте это простым способом, используя собственный код VB6.Вот отличная статья Карла Петерсона с примером кода.

1 голос
/ 21 сентября 2012

Это хороший код, и он работает даже в ASP, VBScript.

Function GetHTMLCode(strURL) As String
    Dim strReturn                   ' As String
    Dim objHTTP                     ' As MSXML.XMLHTTPRequest
    If Len(strURL)=0 Then EXIT FUNCTION
    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    objHTTP.open "GET", strURL,False
    objHTTP.send                    'Get it.
    strReturn =objHTTP.responseText
    Set objHTTP = Nothing 
    GetHTMLCode = strReturn 
End Function

Теперь вызовите эту функцию следующим образом (всегда пишите с протоколом):

Msgbox GetHTMLCode("http://www.stackoverflow.com")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...