Полезная информация

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.

№101-09-2012 13:41:33

mao1488
Участник
 
Группа: Members
Зарегистрирован: 01-09-2012
Сообщений: 2
UA: Opera 12.0

Firefox в качестве DDE сервера

Помогите найти ответ на вопрос: поддерживает ли Firefox 15 DDE команды? А именно WWW_OpenURL.
Я пытаюсь написать С++ приложение которое открывало бы в сабже заданный URL в активной вкладке.
Для этого вызываю функцию:

Выделить код

Код:

DdeClientTransaction(Cmd, 0xFFFFFFFF, hConv, 0L, 0, XTYP_EXECUTE, TIMEOUT_ASYNC, NULL);

Cmd - хэндлер указывающий на строку типа "\"www.google.com\",,-1,0,,,,"
Все что получается это открытие пустой страницы в новом окне.
Кто шарит в теме - помогите, примеры кода приветствуются.

Отсутствует

 

№203-09-2012 06:17:54

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 16.0

Re: Firefox в качестве DDE сервера

mao1488 пишет

поддерживает ли Firefox 15 DDE команды?

Нет. DDE - это технология от MS, специфичная для windows-платформы (в частности, её реализация достаточно тесно завязана на COM). Firefox как кроссплатформенное приложение ничего не знает про специфику отдельных платформ.

Отсутствует

 

№303-09-2012 09:02:06

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 16.0

Re: Firefox в качестве DDE сервера

okkamas_knife
Думаю, что это просто запуск процесса с параметром, равным URL ссылки - аналогично набранному в консоли "firefox.exe http://..." (если процесс firefox при этом уже запущен, откроется новый таб с переданным адресом, если нет - откроется на последнем профиле, на котором был запуск без ключа -no-remote). Буду дома - могу посмотреть в исходниках миранды.
В пользу этого мнения также говорит то, что в реестре в ключах FirefoxHTML, FirefoxURL (это в HKCR), etc. в подветке shell/open/command прописано "C:\Program Files\Mozilla Firefox\firefox.exe" -osint -url "%1", а в подветке shell/open/ddeexec пусто; в ветке HKCR/http/shell/open/ddeexec/Application прописан IExplore, и, наконец, сам firefox.exe нигде не зарегистрирован как inproc-сервер.

Отредактировано hydrolizer (03-09-2012 09:11:50)

Отсутствует

 

№403-09-2012 09:12:07

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 15.0

Re: Firefox в качестве DDE сервера

hydrolizer
На сколько я помню свои эксперименты в Delphi 7-летней давности, то я запускал процесс и в качестве имени процесса передавал URL. Система сама решала какой браузер запустить.

Отсутствует

 

№503-09-2012 09:13:26

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 16.0

Re: Firefox в качестве DDE сервера

Lain_13 пишет

На сколько я помню свои эксперименты в Delphi 7-летней давности, то я запускал процесс и в качестве имени процесса передавал URL

Ну вот я о том же. Это просто передача параметров через командную строку, не имеющее никакого отношения к DDE. Причем запуск не непосредственно процесса firefox, а запуск ассоциированного приложения. А ассоциация сама уже дергает то, что нужно - выше я упоминал про ветки реестра, где это прописано.

Отредактировано hydrolizer (03-09-2012 09:16:46)

Отсутствует

 

№603-09-2012 10:23:23

mao1488
Участник
 
Группа: Members
Зарегистрирован: 01-09-2012
Сообщений: 2
UA: Opera 12.0

Re: Firefox в качестве DDE сервера

Скачал исходники FF и в файле  mozilla-central\toolkit\xre\nsNativeAppSupportWin.cpp обнаружил функцию HandleDDENotification(), которая парсит DDE сообщения:

Выделить код

Код:

const char * const topicNames[] = { "WWW_OpenURL",
                                    "WWW_Activate",
                                    "WWW_CancelProgress",
                                    "WWW_Version",
                                    "WWW_RegisterViewer",
                                    "WWW_UnRegisterViewer",
                                    "WWW_GetWindowInfo" };

WWW_GetWindowInfo - точно работает, у меня получилось прочитать текст из адресной строки и заголовок окна.
Вопрос: можно ли сделать билд исходников Firefox и с помощью отладки в Visual Studio посмотреть как работает HandleDDENotification()?

Отсутствует

 

№703-09-2012 13:31:11

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 15.0

Re: Firefox в качестве DDE сервера

mao1488
https://developer.mozilla.org/en-US/docs/Simple_Firefox_build

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]