Я пытаюсь получить UserAgent браузера по умолчанию с помощью ObtainUserAgentString API в Visual Basic 6. Я нашел документацию на MSDN и попытался преобразовать ее в Visual Basic 6, но это не сработало.Как получить строку UserAgent Browser в Visual Basic 6?
С ++ (MSDN)
HRESULT ObtainUserAgentString(
_In_ DWORD dwOption = 0,
_Out_ LPCSTR *pcszUAOut,
_Out_ DWORD *cbSize
);
Visual Basic 6 API-
Private Declare Function ObtainUserAgentString Lib "Urlmon.dll" (ByVal dwOption As Long, ByRef pcszUAOut As String, ByRef cbSize As Long) As Long
Private Function BrowserUserAgent() As String
Dim httpUseragent As String
Dim szhttpUserAgent As Long
httpUseragent = Space(512)
szhttpUserAgent = Len(httpUseragent)
Call ObtainUserAgentString(0, httpUseragent, szhttpUserAgent)
BrowserUserAgent = httpUseragent
End Function
Private Sub Command1_Click()
MsgBox BrowserUserAgent
End Sub
Помните строки всегда проходили ByRef. Ключевое слово ByVal передает строку C byRef, ByRef передает BStr ByRef. BStr - это Cstr с 4 байтовым заголовком. Поэтому ByVal передает адрес памяти, начиная с 4 байтов в строку. –
Что делать, если машина не используется, т.е. –
Точка, что Urlmon является частью экосистемы IE и не имеет отношения к сторонним браузерам. – Bob77