Alex Steinmetz Ответов: 2

Vb: как я могу изменить следующую строку на веб-браузер по умолчанию: dim webbrowser1 as object = creatobject("internetexplorer.application")


Как изменить следующую строку на веб-браузер по умолчанию:
Dim WebBrowser1 as object = CreatObject("InternetExplorer.Application")


Что я уже пробовал:

1. Dim WebBrowser1 as object = CreatObject("LaunchWinApp.exe %1")
2. Dim WebBrowser1 as object = CreatObject("default")

2 Ответов

Рейтинг:
2

Leo Chapiro

[ОТРЕДАКТИРОВАННЫЙ]
Используйте этот код (VBS/VBA), чтобы открыть URL-адрес в стандартном браузере:

Dim webbrowser2
Set webbrowser2 = CreateObject("Wscript.Shell")
If webbrowser2 Is Nothing Then
  MsgBox "Error on creating WebBrowsewr object"
Else
  webbrowser2.Run "http:\\www.google.com", 1, False
End If


Посмотри: Сценарий шоу-браузер по умолчанию (обновление для Win10)[^]

wscript.echo browser 
 
' Indentify default web browser 
' By Jørgen Bigom  
' Updated Oct. 2015 
Function Browser 
    Const HKEY_CURRENT_USER = &H80000001 
    Const strKeyPath = "Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice" 
    Const strValueName = "Progid" 
    Dim strValue, objRegistry, i 
' Browser list: 
    Dim blist(6,1) 
    blist(0,0) = "Intermet Explorer"    : blist(0,1) = "ie" 
    blist(1,0) = "Edge"                    : blist(1,1) = "appxq0fevzme2pys62n3e0fbqa7peapykr8v" 
    blist(2,0) = "Firefox"                : blist(2,1) = "firefox" 
    blist(3,0) = "Chrome"                : blist(3,1) = "chrome" 
    blist(4,0) = "Safari"                : blist(4,1) = "safari" 
    blist(5,0) = "Avant"                : blist(5,1) = "browserexeurl" 
    blist(6,0) = "Opera"                : blist(6,1) = "opera" 
    Set objRegistry = GetObject("winmgmts:\\.\root\default:StdRegProv") 
    objRegistry.GetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,strValue 
    If IsNull(strValue) Then 
        browser = "Intermet Explorer (Windows standard)": Exit Function 
    Else 
        For i = 0 To Ubound (blist, 1) 
            If Instr (1, strValue, blist(i,1), vbTextCompare) Then browser = blist(i,0) & " - User choice": Exit Function 
        Next 
    End If 
    browser = "Unknown web browser! (signature: '" & strValue & "')" 
End Function


Dave Kreskowiak

Это не имеет ничего общего с вопросом, который был задан.

Leo Chapiro

Это возможность получить стандартный браузер с помощью реестра windows. Почему это не должно иметь отношения к заданному вопросу?

Dave Kreskowiak

Моя вина. Вот что я получаю за то, что пытаюсь читать код, когда половина моего мозга спит.

Alex Steinmetz

_чувак
Не могли бы вы быть более конкретными?

Похоже, вы все упускаете главное.
Я не пытаюсь контролировать все основные браузеры.

то, что я пытаюсь, - это запустить браузер по умолчанию как: "процесс.Начало(url)"

и получите HtmlDocuments и активные элементы

так что я могу опубликовать свое имя пользователя и пароль.

Leo Chapiro

@Alex: Вы пробовали позвонить WShell?Выполнить(url, 1, false) ?

Alex Steinmetz

Пожалуйста, объявите "WShell" и любезно сообщите более подробную информацию.

Leo Chapiro

CreateObject("Wscript.Ракушка").Беги - посмотри https://ss64.com/vb/run.html Разве вы не знакомы с VBS?

Alex Steinmetz

Нет, я не знаком с VB-скриптом.

До сих пор не удается получить активные элементы.

Код
Dim webbrowser2 As Object = CreateObject("Wscript.Shell").Run(MemSite(CurrCell), 1, False)
Dim HtmlDoc, HtmlElem Как Объект
Свойстве htmldoc = webbrowser2.Документ
HtmlElem = HtmlDoc.all.item(0)
Если HtmlElem.tagname = "HTML", то
------
Конец, если

Leo Chapiro

Вам нужно использовать "Set" для создания объектов в VBS/VBA.
Попробуйте это (VBS):

Тусклый webbrowser2
Set webbrowser2 = CreateObject("Wscript.Ракушка")
Если webbrowser2 - это ничто, то
MsgBox "ошибка при создании объекта WebBrowsewr"
Еще
webbrowser2.Run "http:\\www.google.com", 1, ложь
Конец, Если

Dave Kreskowiak

Проблема с этим подходом заключается в том, что вы получаете объект процесса обратно. Вы не получаете доступа к браузеру DOM, чтобы иметь возможность заполнять поля из кода.

Alex Steinmetz

Набор и давайте больше не поддерживается.

как вы получаете "активные элементы" отображаемой html-страницы ???

Leo Chapiro

Алекс, доставь мне удовольствие, пожалуйста: сохрани код, который я тебе дал, как test.vbs и дай ему запуститься ("cscript.exe test.vbs" на консоли). Вы увидите, что браузер по умолчанию открывает сайт google - это все, что я могу сделать для вас сейчас. У меня больше нет времени, чувак, извини!

Alex Steinmetz

Спасибо, что попытались помочь
Желаю вам хорошо провести выходные.

Рейтинг:
1

Dave Kreskowiak

Вы не. AFAIK, IE-это единственный браузер, доступный через COM-интерфейс.

Далее, рассматривая возвращаемый объект класса из CreateObject "как объект", вы получите доступ только к методам и свойствам, которые предоставляет объект, а не к свойствам и методам возвращаемого объекта класса, который вы создали.

Если вы хотите управлять всеми основными браузерами, загляните в раздел Селен[^].


Alex Steinmetz

Спасибо Дэйву за твой ИММ. ответ.
вы избавили меня от многих испытаний.

Selenium не поддерживает VB.

Dave Kreskowiak

Почему вы говорите, что он не поддерживается?

Он работает в VB.NET.