Форум: "WinAPI";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
ВнизКак определить какой браузер установлен по умолчанию? Найти похожие ветки
← →
R4D][ (2003-01-08 16:57) [0]Привет всем! Вопрос вот такой: как определить какой браузер установлен по умолчанию. Вопрос вроде простой, но я везде искал, но негде не нашел: Regmon"ом просмотрел куда обращается браузер при запуске - не помогло, пол MSDN просмотрел - естественно стандартной функции нет, я даже tdump user.exe просмотрел - никакой стандартной функции для определения браузера, установленного по умолчанию нет. Последняя надежда - это вы!!!(ОС WinME)
← →
Song (2003-01-08 17:00) [1]В смысле название или запускаемый файл? Что именно?
← →
R4D][ (2003-01-08 17:03) [2]Запускаемый фаил!
← →
Song (2003-01-08 17:29) [3]FindExecutable() для расширения html например
← →
R4D][ (2003-01-08 17:38) [4]Спасибо, когда проверю(наверное уже завтра) - скажу результаты.
← →
smok_er (2003-01-08 19:08) [5]Да по-моему проще в реестр залезть и поправить. Там это все элементарно.
пример для htmlfile
Лезем в HKEY_CLASSES_ROOT
находим ключ htmlfile
заходим в него
в нем ключ shell, затем open
выставляем ключ command на свою программу и все либо просто считываем значение, если нужно просто узнать сабж.
Кстати, там же и иконку можно поменять.
Желаю удачи!
← →
Song (2003-01-08 20:52) [6]2smok_er (08.01.03 19:08)
Всё это и делает FindExecutable()
← →
R4D][ (2003-01-08 21:37) [7]Thanks to smok_er. Вот еще вопрос по ShellExecutable: Он не хочет показывать пути, в которых используется символ пробела! Например, вот этот код(1), в моем случае, должен в итоге привести к тому, что будет выведен MessageBox с такой строчкой "C:\Program Files\NetCaptor\NetCaptor.exe", а на самом деле получается сообщение со строкой "C:\Program". Если, например, использовать вместо "C:\Windows\Readme.htm", что-нибудь содержащее jpg картинку, то все будет нормально, ибо у моего просмотрщика картинок путь без пробелов. Ну и, наконец вопрос - как избавиться от этой проблемы? В общем, smok_er уже назвал вариант ответа, но у меня в WinME нет ключа htmlfile, а есть html, где вместо путя к проге указан GUID интерфейса? Да и хочеться, чтобы прога была более переносимой(если функции из версии в версию Windows менялись не так и значительно(по крайне мере в Win9x), то про реестр нельзя так сказать)
(1):
...
var
BrN: PChar;
...
GetMem(BrN,255);
FindExecutable(PChar("C:\Windows\Readme.htm"),"",BrN);
MessageBox(0,BrN,"",mb_ok);
FreeMem(BrN);
← →
Smok_er (2003-01-09 00:04) [8]Надо брать в кавычки вроде
← →
R4D][ (2003-01-09 11:31) [9]Что именно?
← →
R4D][ (2003-01-09 11:51) [10]Если ты имел в виду FindExecutable(PChar(""D:\WIndows\Readme.htm""),"",BrN), то тот же эффект, как и без кавычек...может у меня винда глючит?
← →
Verg (2003-01-09 13:08) [11]Например, у меня под NT4 WS на C:\Program Files\index.htm
FindExecutable выдает
C:\PROGRA~1\Plus!\MICROS~1\iexplore.exe
Что полностью соответствует записи в регистри:
HKEY_CLASSES_ROOT\htmlfile\shell\open\command\(default)
Это же можно посмотреть в Windows Explorer/View/Options/File Types
← →
R4D][ (2003-01-09 13:12) [12]To Verg:
Можешь дать исходник, а то че то тот который я предложил не работает, может я не грамотно воспользовался функцией? Или все же это глюк винды?
← →
Verg (2003-01-09 13:47) [13]
> Можешь дать исходник
Дык, я ж из товей мессаги его и дернул :)
implementation
uses ShellApi;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
BrN: PChar;
begin
GetMem(BrN,255);
FindExecutable(PChar("C:\Program Files\index.htm"),"",BrN);
MessageBox(0,BrN,"",mb_ok);
FreeMem(BrN);
end;
← →
R4D][ (2003-01-09 13:50) [14]Странно, а у меня показывает сообщение "C:\Program"...все надоело...сношу нафиг WinME, то MAPI не инициализируется у него, то C:\Program...
Спасибо всем, вы очень помогли.
← →
Smok_er (2003-01-10 00:12) [15]>>но у меня в WinME нет ключа htmlfile, а есть html,
честно говоря, в своих проектах пользуюсь именно предложенным мною способом. Неужели в ВинМе нет такого ключа?
Как тогда можно установить значения без использования прямого доступа к реестру?
← →
R4D][ (2003-01-12 14:23) [16]2Smok_er: прошу прощения, я тут недавно опять полез в реестр и нашел этот самый ключ, но у него какая-то странная структура:
В shell - параметр по умолчанию - NetCaptor;
В нем же есть подраздел - NetCaptor, в котором, в свою очередь, есть подраздел command, где в ключе по умолчанию и находится путь к исполняемому фаилу.
Че-то все больно запутанно, но тут должна быть система. Если кто-нибудь знает как это работает, пожалуйста ответьте.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c