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

Получить установленный по умолчанию Screen Saver

Delphi , Графика и Игры , ScreenSaver и ScreenMate

Получить установленный по умолчанию Screen Saver

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

uses
   Inifiles, ShellApi;

 procedure TForm1.Button1Click(Sender: TObject);
 var
   Ini: TInifile;
   ScreenSaverFile: string;

      function GetLongFileName(const FileName: string): string;
   var
     aInfo: TSHFileInfo;
   begin
     if SHGetFileInfo(PChar(FileName), 0, aInfo, SizeOf(aInfo), SHGFI_DISPLAYNAME) <> 0 then
       Result := string(aInfo.szDisplayName)
     else
       Result := FileName;
   end;

      begin
   Ini := TInifile.Create('system.ini');
   ScreenSaverFile := GetLongFileName(Ini.Readstring('boot', 'SCRNSAVE.EXE', 'Not Available'));
   Ini.Free;
   label1.Caption := ScreenSaverFile;
 end;

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

Это код Delphi, который извлекает установленный по умолчанию экран-сейвер на системе. Вот разбивка того, что код делает:

  • Процедура Button1Click вызывается при клике кнопки на форме.
  • Создается экземпляр класса TInifile, представляющего собой файл INI, и присваивается переменной Ini.
  • Определена функция GetLongFileName, которая конвертирует длинное имя файла в короткое. Это полезно потому что Delphi использует разные названия для файлов в зависимости от того, находится ли они в корневом каталоге или нет.
  • Код читает значение из файла INI с именем "system.ini" и присваивает его переменной ScreenSaverFile. Значение, которое читается, это путь к экран-сейверу по умолчанию, хранящемуся под ключом "SCRNSAVE.EXE" в разделе "boot" файла INI.
  • Если значение не может быть прочитано из файла INI (т.е. если оно не доступно), код по умолчанию присваивает строковое литеральное значение "Not Available".
  • Функция GetLongFileName вызывается с аргументом значения ScreenSaverFile, и результат хранится в ScreenSaverFile. Это конвертирует длинное имя файла в короткое.
  • Наконец, код устанавливает заголовок метки на форме (Label1) значением ScreenSaverFile, эффективно отображая путь к экран-сейверу по умолчанию.

Вот альтернативное решение, использующее встроенные функции Delphi для извлечения экран-сейвера:

uses
  ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
var
  ScreenSaverPath: string;
begin
  ScreenSaverPath := SHGetKnownFolderPath(KnownFolder.Screensavers, 0, nil, nil);
  if ScreenSaverPath <> '' then
    Label1.Caption := ScreenSaverPath
  else
    Label1.Caption := 'Not Available';
end;

В этом коде мы используем функцию SHGetKnownFolderPath для извлечения пути к каталогу экран-сейверов. Если путь не пуст, мы устанавливаем заголовок метки на форму; иначе, мы по умолчанию присваиваем строковое литеральное значение "Not Available". Это подход более компактный и легче для чтения, чем оригинальный код.

В статье описывается функция, которая получает установленный по умолчанию экранное сохранение (Screen Saver) из файла system.ini и отображает его в виде текстового сообщения на форме приложения.


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

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




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


:: Главная :: ScreenSaver и ScreenMate ::


реклама


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

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