Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 746

/ вопрос решён /

Здравствуйте, господа эксперты! Еще один вопрос: как узнать, на каком разделе установлена операционная система?

alone Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: alone (статус: Посетитель)
Вопрос отправлен: 17 июля 2007, 00:13
Состояние вопроса: решён, ответов: 2.

Ответ #1. Отвечает эксперт: Николай Рубан

Здравствуйте, Гадлевский Олег Вячеславович!

Воспользуйтесь несложной процедурой которая выдает значения переменных окружения ОС (см. приложение).

В переменную VarName записываете название соответсвующей переменной, для вашего случая это \'SystemDrive\', если хотите узнать каталог в котором установлена ОС, то достаточно изменить на \'SystemRoot\'.
Если Вы не знаете как называется та или иная переменная кружения, то Вам достаточно в командной строке windows воспользоваться командой set, после чего на экран выведется список переменных

Good Luck!!!

Приложение:
  1. procedure TForm1.Button13Click(Sender: TObject);
  2. var i: integer;
  3. VarName,Result:string;
  4. begin
  5. VarName:='systemdrive';
  6. Result := '';
  7. try
  8. i := GetEnvironmentVariable(PChar(VarName), nil, 0);
  9. if i > 0 then
  10. begin
  11. SetLength(Result, i);
  12. GetEnvironmentVariable(Pchar(VarName), PChar(Result), i);
  13. end;
  14. except
  15. Result := '';
  16. end;
  17. ShowMessage(Result);
  18. end;


Ответ отправил: Николай Рубан (статус: 10-ый класс)
Время отправки: 17 июля 2007, 00:50
Оценка за ответ: 5

Комментарий к оценке: Спасибо, Николай!

Ответ #2. Отвечает эксперт: min@y™

Есть ещё способ: функция GetWindowsDirectory(), возвращающая путь установленной ОС, например C:\Windows. Вытащить оттуда 1-й символ (букву раздела) труда не составит.

var
Buffer: array[0..255] of Char;
SysDrive: Char;
begin
GetWindowsDirectory(Buffer, SizeOf(Buffer));
SysDrive:= Buffer[0];
end;

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 17 июля 2007, 08:18
Оценка за ответ: 5

Комментарий к оценке: Спасибо!

Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 17 июля 2007, 08:22; участников в обсуждении: 2.
Николай Рубан

Николай Рубан (статус: 10-ый класс), 17 июля 2007, 00:51 [#1]:

Обращаю Ваше внимание на запись вида: \\' (backslash и кавычка) - должна быть ОДНА обычная кавычка.
Ерёмин А.А.

Ерёмин А.А. (статус: *Администратор), 17 июля 2007, 08:22 [#2]:

В дополнение к сообщению Н.Рубана: ошибка с кавычками и слешами имела место быть. В данный момент она устранена.

31 января 2011, 19:29: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:42
Выполнено за 0.02 сек.