Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Добавить текущую страницу TWebBrowser в Избранное

Delphi , Интернет и Сети , Браузер

Добавить текущую страницу TWebBrowser в Избранное

Ответ в окне браузера:
ты ответа не дождешься, глупый юзер, я не твой!


// You need: 1 TEdit, 2 TButtons, 1 TWebbrowser 
const 
  NotAllowed: set of Char = ['"'] + ['/'] + ['\'] + ['?'] + [':'] + ['*'] + 
    ['<'] + ['>'] + ['|']; 

implementation 

{$R *.DFM} 

function Load(Path, Key: string): string; 
var 
  Reg: TRegistry; 
begin 
  Reg := TRegistry.Create; 
  try 
    Reg.RootKey := HKEY_CURRENT_USER; 
    Reg.OpenKey(Path, False); 
    try 
      Result := Reg.ReadString(Key); 
    except 
      Result := ''; 
    end; 
    Reg.CloseKey; 
  finally 
    Reg.Free; 
  end; 
end; 

function WinDir: string; 
var 
  WinDir: PChar; 
begin 
  WinDir := StrAlloc(MAX_PATH); 
  GetWindowsDirectory(WinDir, MAX_PATH); 
  Result := string(WinDir); 
  if Result[Length(Result)] <> '\' then 
    Result := Result + '\'; 
  StrDispose(WinDir); 
end; 

function GetSysDir: string; 
var 
  dir: array [0..MAX_PATH] of Char; 
begin 
  GetSystemDirectory(dir, MAX_PATH); 
  Result := StrPas(dir); 
end; 

// Navigate to a page 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  Webbrowser1.Navigate(edit1.Text); 
end; 

// Add the current page to the favorites 

procedure TForm1.Button2Click(Sender: TObject); 
var 
  url: TStringList; 
  fav: string; 
  title, b: string; 
  i: Integer; 
  c: Char; 
begin 
  fav := Load('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders','Favorites'); 
  url := TStringList.Create; 
  try 
    url.Add('[InternetShortcut]'); 
    url.Add('URL=' + webbrowser1.LocationURL); 
    url.Add('WorkingDirectory=' + WinDir()); 
    url.Add('IconIndex=0'); 
    url.Add('ShowCommand=7'); 
    url.Add('IconFile=' + GetSysDir() + '\url.dll'); 
    title := Webbrowser1.LocationName; 
    b := ''; 
    for i := 1 to Length(title) do 
    begin 
      c := title[i]; 
      if not (c in NotAllowed) then 
      begin 
        b := b + Webbrowser1.LocationName[i]; 
      end; 
    end; 
    url.SaveToFile(fav + '\' + b + '.url'); 
  finally 
    url.Free; 
  end; 
end; 

end.

Перевод контента на русский язык:

Цель этого кода - добавить текущую страницу, отображаемую в компоненте TWebBrowser, в избранное пользователя.

Разбивка кода:

  1. Множество NotAllowed содержит символы, которые не разрешены в именах файлов, и будет использовано позднее для очистки заголовка веб-страницы.
  2. Функция Load читает значение из реестра Windows под текущим пользователем.
  3. Функции WinDir и GetSysDir возвращают путь к директории Windows и системной директории, соответственно.
  4. Процедура Button1Click навигирует TWebBrowser на страницу, указанную в текстовом поле.
  5. Процедура Button2Click добавляет текущую веб-страницу в избранное пользователя.

Процедура Button2Click выполняет следующие действия:

  • Загружает путь к папке "Избранное" из реестра Windows с помощью функции Load.
  • Создает объект TStringList для хранения данных для InternetShortcut.
  • Добавляет несколько строк в TStringList, включая:
    • [InternetShortcut]: заголовок, указывающий, что это интернет-ссылка.
    • URL=<url>: URL веб-страницы.
    • WorkingDirectory=<win_dir>: путь к директории Windows.
    • IconIndex=0: индекс иконки для закладки.
    • ShowCommand=7: команда отображения для закладки (не знаю, что это делает).
    • IconFile=<sys_dir>\url.dll: файл иконки для закладки.
  • Получает заголовок веб-страницы с помощью свойства Webbrowser1.LocationName.
  • Очищает заголовок, удаляя символы, которые не разрешены в именах файлов, с помощью цикла.
  • Сохраняет данные в файле с тем же именем, что и очищенный заголовок, но с расширением .url, в папке "Избранное".

В целом, этот код quite сложен и может быть трудно понять. Вот некоторые предложения по улучшению:

  1. Используйте константы вместо магических чисел (например, MAX_ PATH) при возможности.
  2. Рассмотрите возможность использования отдельной функции для очистки заголовка вместо его встраивания в процедуру Button2Click.
  3. Добавьте обработку ошибок, чтобы код не ломался, если что-то пошло не так (например, если папка "Избранное" не может быть записана).
  4. Рассмотрите возможность использования более современного подхода, такого как использование API Windows Shell или третьей-сторонней библиотеки, для добавления закладок вместо зависимости от реестра и файлового ввода-вывода.

В ответе из окна браузера ("ты ответа не дождешься, глупый юзер, я не твой!") кажется, что браузер отвечает русским сообщением, которое примерно переводится как "ты не будешь ждать ответа, дурак, я не твоий!". Однако это сообщение, вероятно, является не связанным с кодом, который вы предоставили, и может быть вызвано другими причинами.

Добавить текущую страницу TWebBrowser в Избранное: код на Delphi, позволяющий добавлять адрес текущей открытой страницы в избранное.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Браузер ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-12 15:40:48/0.0040309429168701/0