Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.008 c
3-87245
Anton
2003-02-11 15:11
2003.02.27
Почему может возникнуть такая ошибка


3-87273
smus
2003-02-07 10:51
2003.02.27
Запрос на логин и пароль в Interbase


1-87564
V-Isa
2003-02-17 14:18
2003.02.27
Покидание компонента курсором мыши


3-87333
Ihtiandr
2003-02-10 17:25
2003.02.27
fibPlus


14-87692
Dark Elf
2003-02-11 17:16
2003.02.27
Расширенный алгоритм Эвклида





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский