Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/64: Рейтинг темы: голосов - 64, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 15

URL открытой вкладки браузера

14.04.2016, 12:36. Показов 13310. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.

Подскажите как получить URL активной вкладки браузера? Есть программа, которая получает список запущенных приложений(видимые окна). Необходимо вывести URL активной вкладки если найден браузер. К сожалению в интернете не удалось ни чего найти подходящего. Приложение написано на C#.

Заранее спасибо.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.04.2016, 12:36
Ответы с готовыми решениями:

Как программно получить URL адрес открытой вкладки Google Chrome?
Доброго времени суток форумчани=)) суть вопроса такая, как программно можно получить URL адрес открытой вкладки Google Chrome?? И еще...

Как перехватить URL страницы, открытой в любом браузере
Ситуация такая. С помощью какого либо браузера просматриваю страничку в интернете. Параллельно запущена программа на C#. Как, нажав...

Закрытие вкладки браузера
Столкнулся с проблемкой. Прожка открывает браузер хром,заходит на сайт и находит ссылку на сайте и кликает по ней, открывается страница в...

20
19 / 8 / 7
Регистрация: 26.12.2013
Сообщений: 167
15.04.2016, 18:46
Свойство WebBrowser.Url
0
0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 15
15.04.2016, 18:57  [ТС]
А можно поконкретнее?
0
0 / 0 / 1
Регистрация: 06.01.2016
Сообщений: 5
15.04.2016, 19:28
Какой браузер? Хром, Осел, Файер фокс? Если я правильно понял вопрос, кури в сторону win api.
0
0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 15
15.04.2016, 19:36  [ТС]
Нет привязки к браузеру... Нужен относительно универсальный способ.
0
Вежливость-главное оружие
 Аватар для some_name
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
15.04.2016, 19:39
попробуйте selenium web-driver
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
15.04.2016, 19:55
pinvoke.net: FindWindowEx (user32)
0
0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 15
18.04.2016, 15:26  [ТС]
Спасибо, пример работает нормально, но возникают сложности с другими браузерами. FindWindowEx ищет по имени классу и к сожалению имя класса должно полностью совпадать. поискав в сети я нашел что раньше, к примеру в хроме, за URL отвечал класс Chrome_OmniboxView. Но сейчас я не нахожу в окне такого класса. Так же нашел что можно найти класс элемента с помощью Spy++, но у меня он находит всего два класса в хроме Chrome_WidgetWin_1- если я правильно понял основное окно и Chrome_RenderWidgetHostHWND - контейнер страницы. Но адресная строка не входит в этот контейнер... Можно ли как то перебрать все элементы окна?
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
18.04.2016, 22:11
Лучший ответ Сообщение было отмечено AngelusNine как решение

Решение

AngelusNine, для хрома я покажу пример с UIAutomation. К проекту надо подключить библиотеки
UIAutomationClient и UIAutomationTypes
C#
1
2
using System;
using System.Windows.Automation;

C#
1
2
3
4
            var root = AutomationElement.RootElement.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ClassNameProperty, "Chrome_WidgetWin_1"));
            var textP = root.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Edit));
            var vpi = textP.GetCurrentPropertyValue(ValuePatternIdentifiers.ValueProperty);
            Console.WriteLine(vpi);
Этот код должен вывести содержимое адресной строки первого окна хрома, которое будет найдено. Если нужно все окна перебрать, то вместо FindFirst используй FindAll.
1
0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 15
18.04.2016, 23:16  [ТС]
Огромнейшие спасибо. Вы можно сказать спасли мой дипломный проект. А если не сложно, может вы сможете еще посоветовать литературу по этой теме, что бы понять как работают эти чудесные 3 строчки кода?
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
18.04.2016, 23:28
Цитата Сообщение от AngelusNine Посмотреть сообщение
А если не сложно, может вы сможете еще посоветовать литературу по этой теме, что бы понять как работают эти чудесные 3 строчки кода?
К сожалению по этой теме литература мне не встречалась. Так что придется "курить" документацию.

Добавлено через 2 минуты
И кстати, с файрфоксом это тоже работает. Только надо имя класса окна ввести MozillaWindowClass. Насчет других не знаю, возможно код придется подправить.
0
0 / 0 / 0
Регистрация: 13.04.2016
Сообщений: 15
18.04.2016, 23:39  [ТС]
В любом случае спасибо. Дальше думаю уже разберусь. Теперь хотя бы однозначно в ясно в каком направлении если что курить.
0
12 / 9 / 4
Регистрация: 25.10.2015
Сообщений: 33
18.07.2016, 17:38
diadiavova, вот непонятно насчёт "using System.Windows.Automation;" у меня отсутствует это пространство имён.
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
18.07.2016, 17:42
Балто, я же там написал какие библиотеки надо подключить к проекту.
1
0 / 0 / 0
Регистрация: 12.07.2015
Сообщений: 6
08.11.2016, 15:00
diadiavova, можете показать пример для findall? Дело в том, что начинает ругаться на var vpi = textP.GetCurrentPropertyValue(ValuePatte rnIdentifiers.ValueProperty);
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
08.11.2016, 16:22
Цитата Сообщение от Матвей24 Посмотреть сообщение
можете показать пример для findall?
Так, а что там непонятного? Метод возвращает коллекцию элементов, обходи ее форичем и для каждого элемента выполняй нужные действия.
0
0 / 0 / 0
Регистрация: 12.07.2015
Сообщений: 6
12.11.2016, 15:27
апр

Добавлено через 1 минуту
C#
1
2
3
4
5
6
7
8
var root = AutomationElement.RootElement.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ClassNameProperty, "Chrome_WidgetWin_1"));
var textPCollection = root.FindAll(TreeScope.Descendants, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.TabItem));
 
foreach (AutomationElement textP in textPCollection)
{
var vpi = textP.GetCurrentPropertyValue(AutomationElement.NameProperty);
MessageBox.Show(vpi + " ");
}
нашел ошибку ControlType.TabItem, а ControlType.Edit, но он выдает только адресная строка и срока поиска-можно это как-то обойти?
0
0 / 0 / 0
Регистрация: 12.07.2015
Сообщений: 6
19.11.2016, 00:25
С помощью AutomationELement можно программно закрыть вкладку?

Добавлено через 31 секунду
diadiavova, С помощью AutomationELement можно программно закрыть вкладку?
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
19.11.2016, 11:53
Матвей24, ну у него же есть "горячие клавиши" для закрытия. Отправь сообщение о нажатии этих клавиш и дело в шляпе. Для этого даже аутомэйшн не нужен.
0
0 / 0 / 0
Регистрация: 12.07.2015
Сообщений: 6
19.11.2016, 12:00
diadiavova, Я так и делаю, но(!) если вкладка открылась автоматически и не является главной (те фоновая), как можно искрутиться с помощью аутомэйшен?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.11.2016, 12:00
Помогаю со студенческими работами здесь

Вывести заголовок url браузера в html файл
Всем привет: Из браузера вытаскиваю информацию по какой ссылке лазиет пользователь. Хочу это записать в html в таблицу Link Как это...

При удалении или переименовании вкладки браузера возникает ошибка ссылки на объект
Пишу веб-браузер на C#, при работе с закладками столкнулся с проблемой, в удалении и смене имени (использую xml). С самими закладками все...

Как считать URL из текущей вкладки яндекс-браузера?
Всем привет. Есть такая задача: Нужно получить URL адрес сайта текущей вкладки Яндекс браузера. Что я пробовал: 1) Найти HWND поля где...

Открытие вкладки браузера с задаваемым URL по нажатию кнопки
Как сделать, чтобы по нажатию кнопки открывалась вкладка в браузере с URL, который я сам задаю?

Подключение в открытой странице браузера
Здравствуйте, по работе возникла необходимость реализовать функцию поиска на внутреннем сайте по событию из другой системы. То есть мне...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
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 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru