Для этого существует функция GetModuleFileName, которая возвращает имя файла
текущего процесса.
function GetModName: string;
var
fName: string;
nsize: cardinal;
begin
nsize := 128;
SetLength(fName, nsize);
SetLength(fName,
GetModuleFileName(
hinstance,
pchar(fName),
nsize));
Result := fName;
end;
Here's the translation of the text into Russian:
Код, предоставленный ниже, - это функция Delphi под именем GetModName, которая получает имя исполняемого файла текущего процесса. Функция использует функцию Windows API GetModuleFileName для достижения этого.
Расшифровка кода:
fName: Это строковая переменная, объявленная для хранения имени файла.
nsize: Это целочисленная переменная (эквивалент unsigned integer в других языках), которая установлена в 128, что является начальными размером буфера fName.
SetLength(fName, nsize);: Эта строка устанавливает длину строки fName в значение, хранящееся в переменной nsize.
GetModuleFileName(hinstance, pchar(fName), nsize): Вызов функции GetModuleFileName получает имя исполняемого файла текущего процесса и хранит его в буфере fName.
Строка Result := fName; присваивает значение fName (полученное имя файла) результату функции.
Альтернативное решение заключается в использовании более современной версии Delphi, поддерживающей Unicode, и вместо типа PChar использует тип WideString для хранения имени файла. Вот пример:
function GetModName: WideString;
var
fName: WideString;
begin
SetLength(fName, 128);
GetModuleFileName(0, PWideChar(fName), Length(fName));
Result := fName;
end;
В этом примере GetModuleFileName принимает нулевой инстанс (0) как первый параметр, а тип PWideChar используется для преобразования буфера WideString в строку, совместимую с Windows API. Функция Length используется для передачи правильной длины буфера в функцию GetModuleFileName.
Функция GetModuleFileName позволяет узнать имя файла текущего процесса, являясь полезной инструментом в разработке программ на языке Delphi.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.