Страницы: 1
Я так понял, что командная строка
firefox.exe -silent -nosplash -setDefaultBrowser
поможет делу.
Тогда еще один вопрос, хотя я понимаю, что спрашиваю не в том месте. Может быть, вы знаете, как сделать то же самое для IE?
Мне нужно установить браузер по умолчанию (Firefox или IE) программно. Подскажите, как это сделать проще всего. Годится не только запись в реестр, но и, скажем, запуск мозиллы с каким-нибудь ключом (если он, конечно, есть). Если ли соответствующие мозилловские функции (через XPCOM)?
Столкнулся с тем, что программа вроде DefaultBrowser работает не совсем корректно. У меня IE7, но нужно, чтобы работало и при установленном IE6. Есть ли какой-то более-менее универсальный путь?
Поскольку толкового я ничего так и не смог придумать, опишу проблему более подробно.
Есть у меня проинсталлированная мозилла версии 2.0.0.1. Когда я запускаю из ее директории программу, содержащую кусок кода, данный в первом посте, получаю следующее сообщение:
nsCOMPtr<nsINavHistoryService> nsINavHistoryService = do_GetService("@mozilla.org/browser/nav-history-service;1", &rv0); if (NS_FAILED(rv0)){ printerror(&rv0); return -1; [i]// ВЫХОДИМ ЗДЕСЬ С ОШИБКОЙ "Returned when a requested class is not registered."[/i] }
Далее, есть у меня мозилла той же версии (2.0.0.1), для которой я сделал make (отключил в опциях дебаг и инсталлятор, а также включил place'ы). Когда я запускаю тот же код теперь уже в этой директории, то получаю следующее:
[code]nsCOMPtr<nsINavHistoryService> nsINavHistoryService = do_GetService("@mozilla.org/browser/nav-history-service;1", &rv0);
if (NS_FAILED(rv0)){
printerror(&rv0);
return -1; [i]// ВЫХОДИ
Спасибо.
Но что-то я не пойму, чем это мне поможет. Ведь нужен ведь именно nsINavHistoryService. Я так понял, нужно зарегистрировать соответствующий компонент - nsINavHistoryService.xpt. Но вот соответствующей dll-ки для него не нашел.
Никто не шел этим путем?
Дополнение.
Что-то начало проясняться, но в результате выполнения следующего кода:
[code]void printerror(nsresult* rv){
switch(*rv){
case NS_ERROR_NOT_INITIALIZED:
printf("Returned when an instance is not initialized.\n");
break;
case NS_ERROR_ALREADY_INITIALIZED:
printf("Returned when an instance is already initialized.\n");
break;
case NS_ERROR_NOT_IMPLEMENTED:
printf("Returned by an unimplemented method.\n");
break;
case NS_ERROR_NO_INTERFACE:
printf("Returned when a given interface is not supported.\n");
break;
case NS_ERROR_NULL_POINTER:
printf("Returned when a valid pointer is found to be nsnull.\n");
break;
case NS_ERROR_FAILURE:
printf("Returned when a method fails. Generic error case.\n");
break;
case NS_ERROR_UNEXPECTED:
printf("Returned when an unexpected error occurs.\n");
break;
case NS_ERROR_OUT_OF_MEMORY:
printf("Returned when a memory allocation fails.\n");
break;
case NS_ERROR_FACTORY_NOT_REGISTERED:
Прошу прощения, не можете ткнуть носом в интерфейс/класс, который бы давал возможность получить список истории, т.е. сайтов, где был пользователь в последнее время. У всех просмотренных мною интерфейсов я не нашел никаких методов для перечисления или выдачи элементов истории по номеру. Из прочитанного же здесь: http://developer.mozilla.org/en/docs/Places:Query_System кажется, что такая возможность вообще будет доступна только начиная с третьей версии. Я прав или что-то просмотрел?
Страницы: 1