1 (edited by sibprogsistem 2019-02-10 21:49:07)

Topic: WebBrowser

только у меня все так плохо или у всех?
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=5066&download=0

Post's attachments

Attachment icon Image 2.jpg 126.01 kb, 180 downloads since 2019-02-10 

Re: WebBrowser

У меня все в порядке,  а какой точно сайт пытаетесь открыть?

Dmitry.

3 (edited by sibprogsistem 2019-02-11 18:30:57)

Re: WebBrowser

DriveSoft wrote:

У меня все в порядке,  а какой точно сайт пытаетесь открыть?

google.ru-- ЕЩЕ ... пробовал и на других сайтах такое ощущение будто  провет из прошлого... завтра попробую на другом ПК, отпишусь
а вот так сам googlе выглядит
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=5076&download=0

Post's attachments

Attachment icon egt.jpg 274.33 kb, 184 downloads since 2019-02-11 

Re: WebBrowser

Ну в общем попробовал на других ПК под разными версиями windiws, все тоже самое...
может в скрипте, что-то не так

procedure frmWeb_OnShow (Sender: TObject; Action: string);
var
web:TWebBrowser;
begin
    Web := TWebBrowser.Create(frmWebSMS);
    TWinControl(Web).Parent := frmWebSMS.Panel1;
    Web.Align := alClient;
    Web.Silent := 1;
    web.Navigate('http://www.google.ru');
    frmWebSMS.Caption:=Opennameweb;
end;

Re: WebBrowser

Действительно есть такая проблема, связана с тем, что по умолчанию компонент TWebBrowser работает как IE7, это можно изменить записав необходимый ключ в реестре, чтобы переключиться на эмуляцию IE10 или IE11 для вашего приложения, решение:


var
    Web: TWebBrowser;


procedure Form1_OnShow (Sender: string; Action: string);
var
    reg : TRegistry;
begin
    // https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85)
    reg:= TRegistry.Create;
    try
        reg.Access := KEY_ALL_ACCESS;
        reg.RootKey:= HKEY_CURRENT_USER;
        if reg.OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', True) then
        begin
            if not reg.ValueExists(ExtractFileName(Application.ExeName)) then
                reg.WriteInteger(ExtractFileName(Application.ExeName), 11000); // 10001 - IE10,  11000 - IE11  https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85)
        end;
        reg.CloseKey;
    finally
        reg.Free;
    end;

    Web := TWebBrowser.Create(Form1);
    TWinControl(Web).Parent := Form1.Panel1;
    Web.Align := alClient;
    Web.Width := Form1.Width;
    Web.Height := Form1.Height-50;
    Web.Silent := 1;
end;
Dmitry.

Re: WebBrowser

А как то можно прописать логин  и пароль для каждого конкретного веба? допустим их на форме сразу 2. Panel1 и Panel2. Они настроены оба уже на нужный сайт, но 1 логинется в свой аккаунт, а второй в свой.

7 (edited by sibprogsistem 2019-02-16 20:32:15)

Re: WebBrowser

agatlogic101 wrote:

А как то можно прописать логин  и пароль для каждого конкретного веба? допустим их на форме сразу 2. Panel1 и Panel2. Они настроены оба уже на нужный сайт, но 1 логинется в свой аккаунт, а второй в свой.

var
    s:string;
    Web: TWebBrowser;


procedure BrowserShow ( Action: string);
var
    reg : TRegistry;
begin
    // https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85)
    reg:= TRegistry.Create;
    try
        reg.Access := KEY_ALL_ACCESS;
        reg.RootKey:= HKEY_CURRENT_USER;
        if reg.OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', True) then
        begin
            if not reg.ValueExists(ExtractFileName(Application.ExeName)) then
                reg.WriteInteger(ExtractFileName(Application.ExeName), 11000); // 10001 - IE10,  11000 - IE11  https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85)
        end;
        reg.CloseKey;
    finally
        reg.Free;
    end;

    Web := TWebBrowser.Create(Form1);
    TWinControl(Web).Parent := Form1.Panel1;
    Web.Align := alClient;
    Web.Width := Form1.Width;
    Web.Height := Form1.Height-50;
    Web.Silent := 1;
    web.Navigate(Action);
end;


begin
s:=InputBox('Введите пороль от сети','Пароль','');
if s='1' then BrowserShow ('http://www.google.ru') else
if s='2' then BrowserShow ('http://www.mail.ru');
end.

вот эту часть переделайте под себя

s:=InputBox('Введите пороль от сети','Пароль','');
if s='1' then BrowserShow ('http://www.google.ru') else
if s='2' then BrowserShow ('http://www.mail.ru');

Re: WebBrowser

Интересный способ, но совершенно не тот. Вопрос не о выборе сайтов, сайт один. Пусть тот же гугл. Вопрос есть ли возможность что бы уже был логин и пароль для каждого отдельного окна браузера где то прописанна, на одной форме. То есть ты открываешь форму, на ней 2 панели под страничку, и каждая страничка уже залогированна в свой аккаунт на одном сайте

Re: WebBrowser

agatlogic101 wrote:

А как то можно прописать логин  и пароль для каждого конкретного веба? допустим их на форме сразу 2. Panel1 и Panel2. Они настроены оба уже на нужный сайт, но 1 логинется в свой аккаунт, а второй в свой.

DriveSoft wrote:

3. Добавил методы, которые позволяют заполнять элементы на форме, находя их по id или name, примеры

    Web.FillElementByName('fd1', 'test');   // заполнение текстового поля
    Web.FillElementByID('qjump-select', '4'); // выбираем 4 элемент из списка
    Web.FillElementByID('fld3', '1'); // установка галочки в CheckBox

    Web.FillElementByName('req_username', 'test');
    Web.FillElementByName('qjump-select', '4');
    Web.FillElementByName('checkboxname', '1');

Re: WebBrowser

а как нажать на кнопку?

<input type="submit" value="Отправить" class="wpcf7-form-control wpcf7-submit">

input type="submit"

Re: WebBrowser

Скачайте пожалуйста последнюю  бета версию
https://www.dropbox.com/s/abazohrbdt3p9 … a.zip?dl=0


Пример:

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
begin
    if Web.ClickElement('input', 'Отправить') then ShowMessage('found and clicked');
end;
Dmitry.

Re: WebBrowser

Есть форма с данными по контакту в которой ячейка "ВК" Где адресс с диалогом данного контакта
ПРИМЕР СТРОЧКИ "https://vk.com/im?media=&sel=152042587"
https://a.radikal.ru/a35/1909/4d/091be8e09550.png
Как сделать так, что бы заходя на каждый контакт из таблицы, отображался диалог именно с этим контактом?
Проще говоря, как сделать так, что бы адресс странички подгружался из TextBox "ВК" ???
Что бы в итоге получилось что то вроде этого
https://d.radikal.ru/d41/1909/03/7a9d76aaa9e3.png

13 (edited by agatlogic101 2019-09-25 16:52:18)

Re: WebBrowser

И хотелось бы еще отдельное окно с Watsapp, но с ним немного сложней, так как в форме номер записан как 89009330340, а ссылка на него выглядит как "web.whatsapp.com/send?phone=79009330340" То есть тут уже нужна какая то подстановка ссылки с номером. И проверка на первую цифру. Что если там 8, то заменить её на 7. Но я в коде вообще не шарю... как его реализовать? Подскажите плз

Re: WebBrowser

Посмотрите эту ветку форума - там есть пример кода для "приклеивания" окон (в том числе окна браузера) на панель:  http://myvisualdatabase.com/forum/viewtopic.php?id=5614

Визуальное программирование: блог и телеграм-канал.

Re: WebBrowser

Примерно так

procedure frmContact_OnShow (Sender: TObject; Action: string);
var
    s: string;
begin
    if frmContact.edVK.Text <> '' then
    begin
        frmWebVk.Show;
        WebVK.Navigate(frmContact.edVK.Text);
    end;

    if frmContact.edPhone.Text <> '' then
    begin
        s := frmContact.edPhone.Text;
        if s[1] := '8' then s[1] := '7';
        frmWebWhtsUp.Show;
        WebWhtsUp.Navigate('https://web.whatsapp.com/send?phone='+s);
    end;
end;
Dmitry.

16 (edited by agatlogic101 2019-09-26 13:30:38)

Re: WebBrowser

А есть такая возможность, что в виндоус10 не возможно переключить на IE10 или 11, потому что там такой то другой браузер установлен? Что делать тогда? я про TWebBrowser

Re: WebBrowser

Вроде как должно все работать, но посмотрите пожалуйста данную тему
https://stackoverflow.com/questions/294 … t-explorer

Dmitry.

Re: WebBrowser

 var
    Web: TWebBrowser;


procedure Form1_OnShow (Sender: string; Action: string);
var
    reg : TRegistry;
begin
    // https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85)
    reg:= TRegistry.Create;
    try
        reg.Access := KEY_ALL_ACCESS;
        reg.RootKey:= HKEY_CURRENT_USER;
        if reg.OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', True) then
        begin
            if not reg.ValueExists(ExtractFileName(Application.ExeName)) then
                   reg.WriteInteger(ExtractFileName(Application.ExeName), 11000); // 10001 - IE10,  11000 - IE11  https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85)
        end;
        reg.CloseKey;
    finally
        reg.Free;
    end;

    Web := TWebBrowser.Create(Form1);
    TWinControl(Web).Parent := Form1.Panel1;
    Web.Align := alClient;
    Web.Width := Form1.Panel1.Width;
    Web.Height := Form1.Panel1.Height;
    Web.Silent := 1;
    Web.Navigate('https://calendar.google.com/calendar/r?cid=c2licHJvZ3Npc3RlbTBAZ21haWwuY29t');
end;
begin

end.

Почему то на некоторых компьютерах не работает. С чем это может быть связанно? Может быть с разрядностью системы?

Re: WebBrowser

Возможно, для 64 битной Windows, попробуйте записывать значение в реестр в данную ветку
Software\wow6432node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION


Но возможно это не поможет, т.к. MVD 32 битная, соотвественно компонент TWebBrowser также используется 32 битный.

Dmitry.

20 (edited by agatlogic101 2019-11-27 13:47:28)

Re: WebBrowser

А как то можно открывать не в IE а другим браузером? А то оказывается тот же сайт с ватсап web не потдерживает IE
https://d.radikal.ru/d18/1911/0f/5b9888fc5360.png
Это можно реализовать через TWebBrowser? ну или через TChromium

Re: WebBrowser

IE и TWebBrowser это одно и тоже. Компонента TChromium в MVD нет.
Какая ссылка открыта  браузером на данном скриншоте? проверю.

Dmitry.

Re: WebBrowser

Ссылка https://web.whatsapp.com/
Но он и в обычном IE не будет работать. Браузер не поддерживается . Предлагает на выбор Google, Mozila, Opera ну или ME и сафари

Re: WebBrowser

Попробовал данную ссылку с TChromium для Delphi, но получил такое сообщение
WhatsApp works with Google Chrome 49+


Более свежей версии компонента к сожалению не нашел. Тут уже ничего не поделаешь.

Dmitry.

Re: WebBrowser

А реально запускать Google Chrome внутри формы MVDB с заранее заданной страницей? Ну то есть смысл тот же, ток без TChromium или TWebBrowser, а напрямую?

Re: WebBrowser

В принципе можно

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
  h: integer;
  Max: integer;
begin
  Openfile('ya.ru', 'chrome');
  // finding window's
  h := 0;
  Max := 20;
  while (h = 0) and (Max > 0) do
  begin
    h := FindWindow('Chrome_WidgetWin_1', ''); // find window using caption
    Dec(Max);
    Sleep(50);
  end;
  if h <> 0 then
  begin
    SetWindowPos( h, 0, -7, -30, 0, 0, SWP_NOSIZE); // set position
    SetParent( FindWindow('Chrome_WidgetWin_1', ''), Form1.Panel1.Handle);
  end;
end;

видимо у скайпа также используется хром для интерфейса, поэтому есть вероятность, что вместо хрома, переместиться скайп )

Dmitry.