Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];

Вниз

Получение каталога Windows в NT   Найти похожие ветки 

 
Registr   (2004-08-30 05:59) [0]

Как можно проще получить рабочий каталог Windows в Win NT, функция GetWindowsDerectory даёт полную фигню, записанную в реестре: типа Document and Setting\Administrator\Windows.
%SystemRoot% во многих случаях не катит. Что делать, как быть?


 
YuRock ©   (2004-08-30 08:12) [1]

GetWindowsDerectory отлично работает под 95/98/NT/2k/XP/03

Я проверял везде.

Другое дело - что ты понимаешь под каталогом Windows...
Из хелпа: "The Windows directory is the directory where an application should store initialization and help files. If the user is running a shared version of Windows, the Windows directory is guaranteed to be private for each user."

Так что GetWindowsDerectory возвращает тебе все правильно.
Если же тебе эта папка нужна для других целей - ищи ее соответствующими способами.

См. GetSystemDirectory; SHGetSpecialFolderLocation; FindFirstFile/FindNextFile...


 
Дмитрий Ботвин   (2004-08-30 14:33) [2]

А что, разве функция GetWindowsDirectory не пашет? Вот сам
попробуй....

function GetWinDir(): string;
 var WindirP: PChar;
     Res: Cardinal;
 begin
   Result:="Unknown";
   WinDirP := StrAlloc(MAX_PATH);
   Res := GetWindowsDirectory(WinDirP, MAX_PATH);
   if Res > 0 then Result:= StrPas(WinDirP);
 end;


 
Дмитрий Ботвин   (2004-08-30 14:35) [3]

Или же как и написал YuRock используй фуекции GetSystemDirectory; SHGetSpecialFolderLocation


 
VMcL ©   (2004-08-30 15:18) [4]

>>Дмитрий Ботвин  (30.08.04 14:33) [2]

Освобождение памяти возложим на А. С. Пушкина?


 
Дмитрий Ботвин   (2004-08-30 16:09) [5]

Согласен FreeMem надо бы добавить....


 
Registr   (2004-08-31 01:39) [6]

Мне нужна папка, куда реально установлена Windows. Универсальную я пока не нашёл, для Win9x действует GetWindowsDirectory(s, SizeOf(s));, а для WinNT
FillChar(PathArray,SizeOf(PathArray), #0);
ExpandEnvironmentStrings("%SystemRoot%",PathArray, 256);
Result := Format("%s",[PathArray]);, то что здесь предлагалось, я попробую, спасибо.


 
VMcL ©   (2004-08-31 10:16) [7]

>>Registr  (31.08.04 01:39) [6]

>Мне нужна папка, куда реально установлена Windows. Универсальную я пока не нашёл

Ссылку на выпрямитель дать?



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

Форум: "WinAPI";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.037 c
4-1093780326
Endi
2004-08-29 15:52
2004.10.10
Task Scheduler


8-1089990457
Serg_lys
2004-07-16 19:07
2004.10.10
ToolButton и Image


14-1095923179
Anonimus
2004-09-23 11:06
2004.10.10
Халявный хостинг


1-1096135368
Charly22
2004-09-25 22:02
2004.10.10
MDI-интерфейс: проблемы с закрытием дочерних форм.


14-1094544398
9k33
2004-09-07 12:06
2004.10.10
Альтернатива для RENT A CODER





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский