Выберите и скопируйте содержимое Firefox в буфер обмена на C или C ++ - PullRequest
3 голосов
/ 07 октября 2010

Я нашел несколько вопросов, похожих на мои, но ни один из ответов не был удовлетворительным, и им несколько лет. Поэтому я надеюсь, что с тех пор, возможно, был достигнут определенный прогресс в этом направлении.

Меня интересует возможность доступа к содержимому активного окна Firefox и его копирование в буфер обмена с использованием кода C или C ++.

В Internet Explorer я могу использовать COM IHTMLDocument2 для доступа к содержимому посредника DOM .

Есть ли что-то похожее в Firefox? Если да, то как мне это сделать?

Кстати, мой текущий (уродливый) обходной путь - имитировать Ctrl + A, Ctrl + C, отправляя виртуальные нажатия клавиш, но это не очень надежное и элегантное решение.

Идеи, советы, понимание, знания будут с благодарностью.

Спасибо.

Примечание. Для дальнейшего разъяснения проблемы я хотел бы отметить, что меня не интересует решение на основе Javascript или Flash . Вместо этого меня интересует решение C / C ++, даже если оно ограничено только платформой Microsoft Windows.

1 Ответ

3 голосов
/ 07 октября 2010

DOM в Firefox доступен для C ++ через XPCOM , но будьте осторожны, в отличие от MSHTML (в IE), интерфейсы в Mozilla не всегда заморожены заморожены интерфейсы зависят от версии и могут изменяться от выпуска к выпуску.

Эквивалент XPCOM IHTMLDocument2 равен nsIDOMDocument.

XPCOM очень похож на COM, базовый класс называется nsISupports и имеет точно такую ​​же семантику, что и IUnknown (включая ту же двоичную разметку и GUID), но не предполагается, что все отображается от COM до XPCOM (например, в XPCOM нет IDispatch).

...