> > Window API функция > > GetWindowDirectory > > UINT GetWindowDirectory(LPTSTR lpszWinPath,UINT > > uWinPathCount) > > > > что-то не распознаёт такую ф-цию
Читай из реестра ключ
HKEY_LOCAL_MACHINE
\Software\Microsoft\Windows\CurrentVersion\SystemRoot
это и есть пусть к директории в которой установлены винды
[Delphi5] Как определить windir из делфи?24.09.01 23:03 Автор: [N\A] Статус: Незарегистрированный пользователь
function GetWinDir: string;
var
Buf: array[0..MAX_PATH] of Char;
begin
GetWindowsDirectory(@Buf[0], MAX_PATH+1);
Result := PChar(@Buf[0]);
if Result <> '' then
if Result[Length(Result)] <> '\' then
Result := Result + '\';
end;
function GetSysDir: string;
var
Buf: array[0..MAX_PATH] of Char;
begin
GetSystemDirectory(@Buf[0], MAX_PATH+1);
Result := PChar(@Buf[0]);
if Result <> '' then
if Result[Length(Result)] <> '\' then
Result := Result + '\';
end;
function GetTempDir : string;
var
Buf: array[0..MAX_PATH] of Char;
begin
Windows.GetTempPath(MAX_PATH+1,@Buf[0]);
Result := PChar(@Buf[0]);
if Result <> '' then
if Result[Length(Result)] <> '\' then
Result := Result + '\';
end;
[Delphi5] Как определить windir из делфи?25.09.01 16:27 Автор: Grag Статус: Незарегистрированный пользователь
В паблише пишешь эти переменные
public
{ Public declarations }
Windir : String;
WindirP : PChar;
Res : Cardinal;
А дальше я сделал на примере кнопки и метки где буем выводить путь
procedure TForm1.Button1Click(Sender: TObject);
begin
WinDirP := StrAlloc(MAX_PATH);
Res := GetWindowsDirectory(WinDirP, MAX_PATH);
if Res > 0 then WinDir := StrPas(WinDirP);
Label1.Caption:=WinDir;
end;
Пояснение:
Сначала выделяем как можно больше памяти под переменную WinDirP типа PChar, дабы потом, используя функцию GetWindowsDirectory() поместить в неё путь к каталогу Windows. В переменную Res будет помещён результат выполнения функции GetWindowsDirectory(), далее если каталог найден (если Res>0), мы переводим путь к каталогу из типа PChar в тип String с помощью функции StrPas() и помещаем получившуюся строку в переменную WinDir.
[Delphi5] Как определить windir из делфи?25.09.01 18:47 Автор: crk Статус: Незарегистрированный пользователь
> В паблише пишешь эти переменные > public > { Public declarations } > Windir : String; > WindirP : PChar; > Res : Cardinal; > А дальше я сделал на примере кнопки и метки где буем > выводить путь > > procedure TForm1.Button1Click(Sender: TObject); > begin > WinDirP := StrAlloc(MAX_PATH); > Res := GetWindowsDirectory(WinDirP, MAX_PATH); > if Res > 0 then WinDir := StrPas(WinDirP); > Label1.Caption:=WinDir; > end; > > Пояснение: > Сначала выделяем как можно больше памяти под переменную > WinDirP типа PChar, дабы потом, используя функцию > GetWindowsDirectory() поместить в неё путь к каталогу > Windows. В переменную Res будет помещён результат > выполнения функции GetWindowsDirectory(), далее если > каталог найден (если Res>0), мы переводим путь к > каталогу из типа PChar в тип String с помощью функции > StrPas() и помещаем получившуюся строку в переменную > WinDir.
Спасибо! А как сделать, чтобы в WriteString('Root','xxx') вместо xxx, прописался адрес из WinDir?
[Delphi5] Как определить windir из делфи?03.12.01 23:53 Автор: JusT_A_UseR Статус: Незарегистрированный пользователь