Если не можете выйти из виндов, есть запасной выход:" Выдерни шнур, выдави стекло...".
uses Registry;
procedure TForm1.Button1Click(Sender: TObject);
var
reg : TRegistry;
ts : TStrings;
i : integer;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
reg.LazyWrite := false;
reg.OpenKey(
'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders',
false);
ts := TStringList.Create;
reg.GetValueNames(ts);
for i := 0 to ts.Count -1 dobegin
Memo1.Lines.Add(ts.Strings[i] +
' = ' +
reg.ReadString(ts.Strings[i]));
end;
ts.Free;
reg.CloseKey;
reg.free;
end;
Here is the translation of the text into Russian:
Программа Delphi использует Windows-регистр для извлечения и отображения стандартных папок в Windows. Программа использует компонент Registry из VCL (Visual Component Library) Delphi для взаимодействия с регистром.
Вот разбивка того, что код делает:
Программа определяет процедуру Button1Click, которая вызывается при клике пользователем на кнопку на форме.
Внутри этой процедуры создается экземпляр класса TRegistry и свойство RootKey устанавливается в HKEY_CURRENT_USER, которое представляет хив регистра текущего пользователя.
Свойство LazyWrite устанавливается в false, что означает, что изменения регистра будут записаны сразу, а не буферизоваться для последующей записи.
Затем программа открывает подключку Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders под хивом текущего пользователя с помощью метода OpenKey. Эта подключка содержит настройки, связанные с оболочкой Windows Explorer.
Создается объект TStringList и используется для хранения имён подключек внутри ключа Shell Folders. Метод GetValueNames вызывается на объекте регистра, передавая в него объект TStringList как аргумент. Этот метод извлекает список всех значений (т. е. подключек) внутри ключа.
Затем программа проходит по каждому значению (подключке) в списке и использует метод ReadString, чтобы извлечь значение, связанное с этой подключкой. Это значение - фактический путь к стандартной папке.
Наконец, программа добавляет строку в текстовое поле на форме для каждой стандартной папки, отображая оба имени папки и соответствующего пути.
Что касается вашего комментария о том, что вы не можете выйти из Windows, я думаю, что вы имеете в виду шутку о вытаскивании плуга или разбитии окна! Хотя это может не быть самым практичным решением, это юмористический способ выражения frustrations при работе с трудными программами или аппаратными проблемами.
Статья рассказывает о методе обнаружения стандартных папок в системе Windows с помощью программирования на языке Delphi.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.