Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 19.09.2012
Сообщений: 10

WebBrowser переприсвоить другому WebBrowser. и потом первый закрыть

11.05.2014, 21:31. Показов 2992. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача такая. В отдельной форме (Форма2), которая открывается ShowDialog() есть визуальный обычный компонент WebBrowser.
В этом WebBrowser открывается страница входа на сайт. Я ввожу туда логин и пароль и нажимаю войти.

Задача в том, что после того, как вход выполнится, я должен закрыть эту Форму2, а этот "Войденный браузер" оставить себе, потому что когда он войденный,
я могу на него отправлять разные ссылки и они будут открываться. А на невойденном браузере будет ругаться на отсутствие права доступа.

Что я делаю. На Форме1 у меня есть невизуальный
public WebBrowserWithCridentials;

Я создаю
Form2 form2 = new Form2 (Form1);
Form2..ShowDialog();


Браузер загружает то что я хочу, я воожу логин/пароль и нажимаю войти.
Дожидаюсь, пока на ФОрме2 у браузера срабатывает DocumentCompleted
{
Form1.WebBrowserWithCridentials = this.WebBrowser;
this.Close();
}



Но вот беда:
1. Когда срабатывает закрытие формы2, то какого-то открывается виндовый Internet Explorer и пытается открыть тот линк, который я грузил на Форме2. Я его этого не просил )))
2. И еще большая беда. На ФОрме1 в WebBrowserWithCridentials у нас null; Ничиво нипанимаю. "Доступ к ликвидированному объекту невозможен."

Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.05.2014, 21:31
Ответы с готовыми решениями:

Сделать баннер, через WebBrowser. Или по другому.
Народ подскажите, как сделать баннер? Чтобы при щелчке по баннеру он не переходил внутри WebBrowser по ссылке, а запускал браузер. Ну...

Закрыть WebBrowser не закрывая форму
По нажатию кнопки через webbrowser открывается определённая ссылка, есть ли способ закрыть webBrowser по нажатию второй кнопки не закрывая...

Delphi WebBrowser Получить HTML сайта не отображая сайт в WebBrowser
На некоторых сайтах такую шляпу вешают, что они неприятны, но тем не менее могут содержать что-то нужное. Речь о рекламе. Если делать...

5
349 / 262 / 65
Регистрация: 07.04.2014
Сообщений: 1,603
11.05.2014, 21:51
Цитата Сообщение от bladerender Посмотреть сообщение
И еще большая беда. На ФОрме1 в WebBrowserWithCridentials у нас null; Ничиво нипанимаю. "Доступ к ликвидированному объекту невозможен."
В этом нет ничего удивительного. Вы всего лишь навсего присвоили в WebBrowser'у на 1й форме ссылку на тот, что был на 2й. То есть, осуществили поверхностное копирование.
В данном случае необходимо глубокое копирование. К сожалению, WebBrowser не реализует интерфейс IClonable. Поэтому, метода Clone у него нет и необходимо реализовывать глубокое копирование вручную.
0
0 / 0 / 1
Регистрация: 19.09.2012
Сообщений: 10
11.05.2014, 22:15  [ТС]
А может тогда от браузера к браузеру копировать "кеш" с пермишенами, которые он получил входя на сайт?
А где WebBrowser их хранит? В каком свойстве?

Добавлено через 18 минут
Короче у WebBrowser-ов один кеш на всех в пределах екземпляра программы. Только что попробовал.
Клонировать ничего не нужно.
А зачем открываеться IExplorer?
0
349 / 262 / 65
Регистрация: 07.04.2014
Сообщений: 1,603
11.05.2014, 22:30
Цитата Сообщение от bladerender Посмотреть сообщение
Короче у WebBrowser-ов один кеш на всех в пределах екземпляра программы. Только что попробовал.
Клонировать ничего не нужно.
А зачем открываеться IExplorer?
Дело в том, что WebBrowser это всего лишь на всего обёртка над COM-интерфейсом IE. То есть, при открытии страницы в WebBrowser, её на самом деле открывает IE, который работает "на заднем плане".
Видимо, "с точки зрения IE", действия программы (уничтожение WebBrowser-а 2й формы с открытой страницей) выглядят "не совсем корректно". Поэтому, после этого IE открывает восстановленную страницу.
Можно решить проблему следующим образом. Сделать WebBrowser 1й формы public и при выполнении операции входа на 2й форме, обращаться к нему.
0
0 / 0 / 1
Регистрация: 19.09.2012
Сообщений: 10
11.05.2014, 22:44  [ТС]
Я пробовал. Передавал с первой формы во вторую ссылку на браузер, и потом присваивал браузеру на второй форме. и потом уже им открывал страницы. Все равно когда закрывается, то браузер на первой странице становиться null (что в принципе логично).

ПОБОРОЛ: Streletz натолкнул меня на мысль, что что-то остается недогруженным. Например какой-то скрипт не может выполнится. Вот оно и не воспринимает страницу как совсем догруженую, хотя имент "DocumentComplete" срабатывает.
Но если перед закрытием формы сделать webBrowser.url = new URL("about:blank"),
и потом Form2.Close(), то всё ОК, IE не открывается, ибо "about:blank" загружается типо мгновенно и полностью. Обманули )))
0
349 / 262 / 65
Регистрация: 07.04.2014
Сообщений: 1,603
11.05.2014, 22:49
ПОБОРОЛ
Поздравляю!
Цитата Сообщение от bladerender Посмотреть сообщение
Я пробовал. Передавал с первой формы во вторую ссылку на браузер, и потом присваивал браузеру на второй форме. и потом уже им открывал страницы. Все равно когда закрывается, то браузер на первой странице становиться null (что в принципе логично).
Вообще-то в моём предыдущем посте речь шла не об этом. Но, судя по всему, уже не суть важно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.05.2014, 22:49
Помогаю со студенческими работами здесь

Нюанс с контролом webBrowser -все webBrowser's подхватывают куки
Всем привет! Ребят подскажите такое: (во всех веб браузерах у меня открывается по умолчанию один и тот же урл - регистрация на...

Открыть новую страницу из WebBrowser-а не в IE, а во втором WebBrowser-е
Задумка такова: Есть 2 TWebbrowser на форме. В первом веббраузере есть ссылка, при нажатии на которую открывается новое окно. Можно ли...

WebBrowser. Как получить Html код страницы открытой в "webBrowser" в правильной кодировке?
Пробую получить Html код страницы открытой в "webBrowser". public string GetHTMLCodPage() { string htmlCodPage; ...

Нужна создать матриц потом вывести первый столп, последний, среди Потом вывести их максимум vb 6.0
Я так делал но дальше уже не могу помогите Если у кого картинка не отображает

Отправить сообщение другому приложению (закрыть его)
Задача - получить хендл программы которую запускаешь и в нужный момент ее закрыть. я запускаю приложение командой param1 :=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru