Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

pascal определение местонахождения папки windows.

hjkasd Ученик (150), закрыт 12 лет назад
тобишь: из паскальной проги надо определить местоположение корневой папки windows, дабы скопирувать туда один файл. гугл сказал, что можно в путь вместо c:\windows вставлять %SystemRoot%, но это не работает. в чём дело?
Дополнен 12 лет назад
неужели нету универсального способа. дельфем не пользуюсь, но ради этого могу скачать. так как это хотябы делфе организовать?
Лучший ответ
... Гений (84997) 12 лет назад
Оболочка виндов тут при чём? Винда устанавливает переменные окружения, а т. к. переменные окружения доступны ещё с DOS режима:
Н-р Turbo/Borland/FreePascal - вывод всех переменных окружения:
uses dos;
var i:integer;
begin
for i:=1 to EnvCount do WriteLn(EnvStr(i)) ;
end.
Вывод конкретной переменной окружения:
GetEnv(envvar: string) : string
н-р WriteLn(GetEnv('SystemRoot'));

Delphi:
Если через переменные окружения можно задействовать
GetEnvironmentVariable(const Name: string) из Sysutils

Или (что лучше) WinAPI
GetWindowsDirectory:
http://msdn.microsoft.com/ru-ru/library/ms724454(v=vs.85).aspx
GetSystemDirectory:
http://msdn.microsoft.com/ru-ru/library/ms724373(v=vs.85).aspx
Возможно будет интересна SHGetFolderPath (функция возвращает "специальную папку" по номеру) - н-р мои документы.
В т. ч. может получить и Windows
http://msdn.microsoft.com/ru-ru/library/bb762181(v=vs.85).aspx

P.S: Естественно если в Pascal открывать файл указывая %переменная_окружения% работать и не будет - такие "фишки" расширяются автоматом н-р в .bat/.cmd файлах, но не в Pascal
Остальные ответы
Jurii Высший разум (176883) 12 лет назад
Версия Pascal не озвучена!

Телепат подсказывает, что аффтар юзает TP, который не умеет работать с оболочкой Windows.
В Delphi переменные среды вполне доступны.
Александр Свиридов Мудрец (10703) 12 лет назад
Универсальный способ есть - использовать правильный язык программирования с хорошей библиотекой которая уже содержит в себе реализацию доступа к PATH переменным. Либо теперь самому это реализовывать, раз язык выбран не корректно и вставляет палки в колёса.
Похожие вопросы