Как узнать Browser по умолчаниюDelphi , Интернет и Сети , БраузерКак узнать Browser по умолчаниюАвтор: http://www.swissdelphicenter.ch { First we create a temporary file and call the function FindExecutable to get the associated Application. } function GetAppName(Doc: string): string; var FN, DN, RES: array[0..255] of char; begin StrPCopy(FN, DOC); DN[0] := #0; RES[0] := #0; FindExecutable(FN, DN, RES); Result := StrPas(RES); end; function GetTempFile(const Extension: string): string; var Buffer: array[0..MAX_PATH] of char; aFile: string; begin GetTempPath(SizeOf(Buffer) - 1, Buffer); GetTempFileName(Buffer, 'TMP', 0, Buffer); SetString(aFile, Buffer, StrLen(Buffer)); Result := ChangeFileExt(aFile, Extension); end; procedure TForm1.Button1Click(Sender: TObject); var f: System.Text; temp: string; begin // get a unique temporary file name // eine eindeutige Temporare Datei bekommen temp := GetTempFile('.htm'); // Create the file // Datei erstellen AssignFile(f, temp); rewrite(f); closefile(f); // Show the path to the browser // Pfad + Programmname zum Browser anzeigen. ShowMessage(GetAppName(temp)); // Finally delete the temporary file // Temporaare Datei wieder loschen Erase(f); end; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //Using the Registry: //************************************************ uses Registry; procedure TForm1.Button1Click(Sender: TObject); var Reg: TRegistry; KeyName: string; ValueStr: string; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_CLASSES_ROOT; KeyName := 'htmlfile\shell\open\command'; if Reg.OpenKey(KeyName, False) then begin ValueStr := Reg.ReadString(''); Reg.CloseKey; ShowMessage(ValueStr); end else ShowMessage('There is nоt a default browser'); finally Reg.Free; end; end; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //************************************************ {Copyright (c) by Code Central} type TBrowserInformation = record Name: string; Path: string; Version: string; end; function LongPathName(ShortPathName: string): string; var PIDL: PItemIDList; Desktop: IShellFolder; WidePathName: WideString; AnsiPathName: AnsiString; begin Result := ShortPathName; if Succeeded(SHGetDesktopFolder(Desktop)) then begin WidePathName := ShortPathName; if Succeeded(Desktop.ParseDisplayName(0, nil, PWideChar(WidePathName), ULONG(nil^), PIDL, ULONG(nil^))) then try SetLength(AnsiPathName, MAX_PATH); SHGetPathFromIDList(PIDL, PChar(AnsiPathName)); Result := PChar(AnsiPathName); finally CoTaskMemFree(PIDL); end; end; end; function GetDefaultBrowser: TBrowserInformation; var tmp: PChar; res: LPTSTR; Version: Pointer; VersionInformation: Pointer; VersionInformationSize: Integer; Dummy: DWORD; begin tmp := StrAlloc(255); res := StrAlloc(255); Version := nil; try GetTempPath(255, tmp); if FileCreate(tmp + 'htmpl.htm') <> -1 then begin if FindExecutable('htmpl.htm', tmp, res) > 32 then begin Result.Name := ExtractFileName(res); Result.Path := LongPathName(ExtractFilePath(res)); // Try to determine the Browser Version VersionInformationSize := GetFileVersionInfoSize(Res, Dummy); if VersionInformationSize > 0 then begin GetMem(VersionInformation, VersionInformationSize); GetFileVersionInfo(Res, 0, VersionInformationSize, VersionInformation); VerQueryValue(VersionInformation, ('StringFileInfo040904E4ProductVersion'), Pointer(Version), Dummy); if Version <> nil then Result.Version := PChar(Version); FreeMem(VersionInformation); end; end else ShowMessage('Cannot determine the executable.'); SysUtils.DeleteFile(tmp + 'htmpl.htm'); end else ShowMessage('Cannot create temporary file.'); finally StrDispose(tmp); StrDispose(res); end; end; Программный код, предоставленный вами, написан на языке Delphi и предназначен для поиска умолчанию браузера на системе Windows. В коде используются три различных метода для достижения этого: Метод 1: Использование FindExecutable
В этом методе временный файл с расширением Метод 2: Использование реестра
В этом методе ключ реестра Метод 3: Использование длинных путей
В этом методе функция Вот некоторые предложения по улучшению кода:
Вот пример модификации Метода 1 для использования
Функция создает временный URI и использует Как узнать браузер по умолчанию - статья описывает несколько способов для определения настроенного в системе браузера по умолчанию, включая использование функций Delphi и доступ к реестру. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |