Получить URL-адрес Firefox?

Как я могу получить url из работающего экземпляра firefox с помощью приложения Windows / консольного приложения .NET 2.0? Коды C # или VB.

Благодаря!

Основываясь на ответе Роба Кеннеди и используя NDde

using NDde.Client; class Test { public static string GetFirefoxURL() { DdeClient dde = new DdeClient("Firefox", "WWW_GetWindowInfo"); dde.Connect(); string url = dde.Request("URL", int.MaxValue); dde.Disconnect(); return url; } } 

NB: Это очень медленно. Это занимает несколько секунд на моем компьютере. Результат будет выглядеть примерно так:

 "http://stackoverflow.com/questions/430614/get-firefox-url","Get Firefox URL? - Stack Overflow","" 

Подробнее о браузере DDE здесь .

Для большинства браузеров, включая Internet Explorer, Navigator, Firefox и Opera, поддерживаемый и санкционированный способ сделать это – использовать DDE . Имя темы во всех них – WWW_GetWindowInfo ; изменяется только имя целевого windows. Тем не менее, эта техника будет сложной для вас, потому что .Net не поддерживает DDE. Если вы найдете способ обойти это ограничение, все будет готово.

кажется, что это может быть сложно, вот несколько обсуждений по этому вопросу: http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/c60b1699-9fd7-408d-a395-110c1cd4f297/

Вы можете проверить исходный код WatiN. Их следующая версия с открытым исходным кодом и поддерживает firefox, поэтому я бы предположил, что в этом есть функциональность.

Бедственное решение, если что-то еще не удается: активируйте окно Firefox, отправьте Ctrl + L (активирует адресную строку), отправьте Ctrl + C (выбор копии, то есть URL-адрес, в буфер обмена) и прочитайте буфер обмена.

Множество проблем с этим методом (среди них странно для пользователя, если они находятся перед компьютером), поэтому это всего лишь резервное решение …

Использование MozRepl: https://github.com/bard/mozrepl/wiki/ + mozRepl .NET Connector: http://mozreplconnector.codeplex.com/releases/view/17398

  var connect = new MozReplConnectDotNet.MozReplConnect(4242); connect.Connect(); Console.WriteLine(connect.SendRecieve("gBrowser.currentURI.spec")); 
  [DllImport("user32.dll", SetLastError = true)] static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, IntPtr windowTitle); [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, StringBuilder ClassName); private static string GetURL(IntPtr intPtr, string programName, out string url) { string temp=null; if (programName.Equals("chrome")) { var hAddressBox = FindWindowEx(intPtr, IntPtr.Zero, "Chrome_OmniboxView", IntPtr.Zero); var sb = new StringBuilder(256); SendMessage(hAddressBox, 0x000D, (IntPtr)256, sb); temp = sb.ToString(); } if (programName.Equals("iexplore")) { foreach (InternetExplorer ie in new ShellWindows()) { var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(ie.FullName); if (fileNameWithoutExtension != null) { var filename = fileNameWithoutExtension.ToLower(); if (filename.Equals("iexplore")) { temp+=ie.LocationURL + " "; } } } } if (programName.Equals("firefox")) { DdeClient dde = new DdeClient("Firefox", "WWW_GetWindowInfo"); dde.Connect(); string url1 = dde.Request("URL", int.MaxValue); dde.Disconnect(); temp = url1.Replace("\"","").Replace("\0",""); } url = temp; return temp; } 

Пожалуйста, выполните следующие действия для запуска этого кода. Добавить ссылку> Ком> Microsoft.Internet.Controls из VS.NET в вашем проекте.

Загрузите bin из http://ndde.codeplex.com/ для classа DdeClient и добавьте его в свой проект

Пожалуйста, дайте мне знать, если какой-либо вопрос

  • В Chrome отключено подключение IPv6, таймауты в Firefox
  • Firefox, сохраняя все изображения с каждой страницы, чтобы их можно было восстановить?
  • Плагин Firefox / Google Chrome для включения многосеансового просмотра
  • Как ускорить мой компьютер для просмотра нескольких вкладок?
  • Как написать Firefox Addon?
  • Анализ производительности и сбоев плагинов Firefox
  • Почему CTRL-клик не открывает некоторые ссылки на новой вкладке?
  • Запретить сохранение URL-адресов из определенных доменов в истории Firefox
  • Firefox 30 не распознает шрифт
  • Selenium 2.53 не работает на Firefox 47
  • Как постоянно увеличить масштаб Firefox без использования аддонов?
  • Давайте будем гением компьютера.