Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2011, 00:17   #1
spydark91
Форумчанин
 
Регистрация: 01.06.2011
Сообщений: 215
По умолчанию как программно узнать на каком из диске стоит ОС?

написал код для этог

Код:
repeat
        d:=DirectoryExists('C:\Windows');
          if d=true then c:=true
                    else
                      begin
                        x:=GetLogicalDrives();
                        for i:=1 to 64 do
                          begin
                            bit:=x and 1;
                              if bit=1 then
                                begin
                                  tp:=GetDriveType(PChar(chr(64+i)));
                                    if tp=DRIVE_FIXED then
                                      begin
                                        d:=DirectoryExists(tp+(PChar(':\Windows')));
                                          if d=true then
                                            begin
                                              c:=true;
                                              break;
                                            end
 
                                                    else
                                                      x:= x shr 1;
                                            end;
                                      end;
                                end;
                          end;
 
      until c=true;
но мне кажется что тут чет не правельно
(проверяю так-есть папка windows на диске или нет)
spydark91 вне форума Ответить с цитированием
Старый 12.06.2011, 00:23   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> но мне кажется что тут чет не правельно

сама идея порочна. Юзайте GetSystemDirectory() или SHGetFolderPath().
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 12.06.2011, 00:24   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а если винда не в папке windows?
что тогда?

Код:
function GetWindowsPath:string;
begin
 SetLength(Result,MAX_PATH);
 SetLength(Result,GetWindowsDirectory(@Result[1],MAX_PATH));
end;
держите
Цитата:
GetSystemDirectory
то путь к system32
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.06.2011, 00:30   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> то путь к system32

ок, предлагаю компромисс — GetSystemWindowsDirectory()
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 12.06.2011, 00:33   #5
spydark91
Форумчанин
 
Регистрация: 01.06.2011
Сообщений: 215
По умолчанию

так чтоли
Код:
var b:word;
begin
GetSystemDirectory(PChar('system32'),b);
label1.Caption:=IntToStr(b);
spydark91 вне форума Ответить с цитированием
Старый 12.06.2011, 00:34   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

по описанию параметров один в один с той что я привел, странно зачем...

ТС, вы ппц, я в ответе привел полностью готовую функцию, вставляй в код, да вызывай.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 12.06.2011 в 00:39.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.06.2011, 00:41   #7
spydark91
Форумчанин
 
Регистрация: 01.06.2011
Сообщений: 215
По умолчанию

а,точно,спасибо) не видел
spydark91 вне форума Ответить с цитированием
Старый 12.06.2011, 00:47   #8
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> по описанию параметров один в один с той что я привел, странно зачем...

это для терминальных серверов:

Цитата:
With Terminal Services, the GetSystemWindowsDirectory function retrieves the path of the system Windows directory, while the GetWindowsDirectory function retrieves the path of a Windows directory that is private for each user. On a single-user system, GetSystemWindowsDirectory is the same as GetWindowsDirectory.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 12.06.2011, 00:52   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

сервисов а не серверов.
ну а у нас разве сервис?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.06.2011, 00:57   #10
volod3000
Форумчанин
 
Аватар для volod3000
 
Регистрация: 18.12.2008
Сообщений: 266
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код:
function GetWindowsPath:string;
begin
 SetLength(Result,MAX_PATH);
 SetLength(Result,GetWindowsDirectory(@Result[1],MAX_PATH));
end;
И сделайте вывод

Код:
Copy(GetWindowsPath,1,1);
и будет Вам буква диска.

Мало открыть человеку глаза, большинство еще просит указать дорогу и ждет волшебного пенделя.
volod3000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как скопировать дизайн сайта?знаю на каком движке стоит и какая версия MiSTiK31 PHP 3 28.11.2010 20:29
как узнать, на каком языке написана прога ? Aobmen Помощь студентам 20 29.08.2010 18:09
Как программно через delphi создать папку на диске? VenMaster Общие вопросы Delphi 5 25.05.2008 21:09
Как узнать на каком языке сделана прога? Sanek_ntsk Свободное общение 3 05.12.2007 20:22