Як визначити який браузер встановлений за замовчуванням
Як визначити який браузер встановлений за замовчуванням?
У сенсі назва або файл, що запускається? Що саме?
FindExecutable () для розширення html наприклад
Спасибі, коли перевірю (напевно вже завтра) - скажу результати.
Так по-моєму простіше в реєстр залізти і поправити. Там це все елементарно.
приклад для htmlfile
Ліземо в HKEY_CLASSES_ROOT
знаходимо ключ htmlfile
заходимо в нього
в ньому ключ shell, потім open
виставляємо ключ command на свою програму і все або просто зчитуємо значення, якщо потрібно просто дізнатися сабж.
До речі, там же і іконку можна поміняти.
2smok_er (08.01.03 19:08)
Все це і робить FindExecutable ()
(1):
.
var
BrN: PChar;
.
GetMem (BrN, 255);
FindExecutable (PChar ( "C: \ Windows \ Readme.htm"), "", BrN);
MessageBox (0, BrN, "", mb_ok);
FreeMem (BrN);
Треба брати в лапки на кшталт
Якщо ти мав на увазі FindExecutable (PChar ( "" D: \ WIndows \ Readme.htm ""), "", BrN), то той же ефект, як і без лапок. може у мене вінда глючить?
Наприклад, у мене під NT4 WS на C: \ Program Files \ index.htm
FindExecutable видає
C: \ PROGRA
Що повністю відповідає запису в регистри:
HKEY_CLASSES_ROOT \ htmlfile \ shell \ open \ command \ (default)
Це ж можна подивитися в Windows Explorer / View / Options / File Types
To Verg:
Можеш дати исходник, а то че то той який я запропонував не працює, може я не грамотно скористався функцією? Або все ж це глюк вінди?
Дик, я ж з товей мессаги його і смикнув :)
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;
Дивно, а у мене показує повідомлення "C: \ Program". все набридло. сношу нафіг WinME, то MAPI НЕ ініціалізується у нього, то C: \ Program.
Спасибі всім, ви дуже допомогли.
>> але у мене в WinME немає ключа htmlfile, а є html,
чесно кажучи, в своїх проектах користуюся саме запропонованим мною способом. Невже в ВінМе немає такого ключа?
Як тоді можна встановити значення без використання прямого доступу до реєстру?
2Smok_er: прошу вибачення, я тут недавно знову поліз до реєстру і знайшов цей самий ключ, але у нього якась дивна структура:
У shell - параметр за замовчуванням - NetCaptor;
У ньому ж є підрозділ - NetCaptor, в якому, в свою чергу, є підрозділ command, де в ключі за замовчуванням і знаходиться шлях до виконуваного фаилов.
Че-то все боляче заплутано, але тут повинна бути система. Якщо хто-небудь знає як це працює, будь ласка дайте відповідь.
Пам'ять: 0.75 MB
Час: 0.05 c