Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.08;
Скачать: CL | DM;

Вниз

Путь к каталогу, в котором установлена Windows   Найти похожие ветки 

 
KIR ©   (2002-06-25 13:28) [0]

Народ, как узнать сабж?


 
Wild   (2002-06-25 13:30) [1]

Ты апишный хелп читаешь когда-нибудь?


 
KIR ©   (2002-06-25 13:33) [2]

Читал. Мне раньше этого небыло нужно. А сейчас нужно, причем срочно, по-моему для этого и придумали форумы. Я прекрасно понимаю, что эта информация есть в АПИшном хэлпе, но "быстрый" поиск не помог.


 
Wild   (2002-06-25 13:33) [3]

Там же все по-русски написано:
The GetWindowsDirectory function retrieves the path of the Windows directory. The Windows directory contains such files as Windows-based applications, initialization files, and Help files.

UINT GetWindowsDirectory(

LPTSTR lpBuffer, // address of buffer for Windows directory
UINT uSize // size of directory buffer
);


 
Wild   (2002-06-25 13:35) [4]

Если из батника надо узнать....ну там проге параметром передать, так это системная переменная %WINDIR%


 
KIR ©   (2002-06-25 13:59) [5]

Если я все правильно понял, то lpBuffer и есть путь к каталогу, но только в формате PChar. А как его перевести в String.


 
Skier ©   (2002-06-25 14:02) [6]

> KIR
StringVar := PChar(lpBuffer);


 
Wild   (2002-06-25 14:08) [7]

>Skier
А я завожу переменную string
...
var Str: string;
...
GetWindowsDirectory(PChar(Str),...)
....


только перед вызовом функции надо определить длину стринга
SetLength(S,255) //например так


 
Skier ©   (2002-06-25 14:15) [8]

> Wild
Тоже вариант...


 
stupid   (2002-06-25 14:19) [9]


procedure TForm1.Button1Click(Sender: TObject);
var
szPath : Array[0..max_path-1] of Char;
Path : String;
begin
GetWindowsDirectory(szPath,max_path);//Каталог Windows
Path:=StrPas(szPath);
Label4.Caption:=Path;
end;




 
Игорь Шевченко ©   (2002-06-25 14:38) [10]

Path:=StrPas(szPath); Лишняя строка


 
DeMoN-777 ©   (2002-06-25 15:02) [11]

Procedure FindWinDir
var
apchar:array [0..255]of char;
s:string;
begin
GetWindowsDirectory(apchar,sizeof(apchar));
s:=strpas(apchar);
end;


Может так.


 
Игорь Шевченко ©   (2002-06-25 15:35) [12]

DeMoN-777 © (25.06.02 15:02)

А так точно нельзя. Потому что s нигде не используется.
И кроме того, преобразование StrPas имеет смысл только для ShortString. Для AnsiString это преобразование происходит неявно при присваивании переменной типа string переменной типа PChar



Страницы: 1 вся ветка

Текущий архив: 2002.07.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
3-23493
dim-
2002-06-05 23:02
2002.07.08
Из поля


1-23532
VDen
2002-06-26 13:32
2002.07.08
Клик в рантайме


1-23624
Администартор
2002-06-25 17:37
2002.07.08
Окна - поиск


7-23814
Goblinus
2002-04-16 15:59
2002.07.08
Как выдвинуть дверцу CD-ROM a?


1-23530
INCOGNITO
2002-06-24 00:34
2002.07.08
Мерцание изображения (TImage