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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2010, 15:05   #1
Areheu
 
Регистрация: 27.11.2009
Сообщений: 5
По умолчанию Определение виндовс в boot.ini

Здравствуйте.
Подскажите, как программно можно определить на винХР и ниже, какая операционная система из списка в boot.ini сейчас загружена.

Пример boot.ini:
Код:
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU" /fastdetect
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Windows Server 2003, x64 Enterprise RU" /noexecute=optout /fastdetect
Если загружена вин2003, то как узнать, что это виндовс №2, или что она загружена именно с multi(0)disk(0)rdisk(0)partition(3) ?
Areheu вне форума Ответить с цитированием
Старый 29.12.2010, 15:29   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Если загружена вин2003, то как узнать, что это виндовс №2, или что она загружена именно с multi(0)disk(0)rdisk(0)partition(3) ?

1. прочитать 'c:\boot.ini'
2. найти себя "Windows Server 2003"
3. узнать всю необходимую информацию.
4. windowDir или нечто подобное.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 29.12.2010, 15:35   #3
Areheu
 
Регистрация: 27.11.2009
Сообщений: 5
По умолчанию

Цитата:
2. найти себя "Windows Server 2003"
Эту строку можно поменять на любую другую(это просто выводимое на экран название и может быть абсолютно любым), потому по нему поиск невозможен.

Цитата:
4. windowDir или нечто подобное.
WinDir даст букву диска, с которого запущена виндовс. А как узнать, какому разделу этот лог. диск пренадлежит?
Areheu вне форума Ответить с цитированием
Старый 29.12.2010, 15:41   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

имхо, boot.ini тут нипричем.
Но можно
1. Узнать на каком диске установлен Windows, который сейчас загружен.
2. Вытащить всю инфу об этой OS.
Вроде, этого должно быть достаточно.
_SERGEYX_ вне форума Ответить с цитированием
Старый 29.12.2010, 17:28   #5
Areheu
 
Регистрация: 27.11.2009
Сообщений: 5
По умолчанию

Извините, я не так поставил вопрос.
Задача такова, мне нужно программно перезагрузить компьютер и загрузится под текущей операционкой.
Способ решения, это записать текущую ОС, как default, а потом просто восстановить boot.ini, но столкнулся с проблемой, что не могу определить, какая текущая.
Думал bootcfg поможет, но не нашёл там нужного ключа

P.S. в висте и 7-ке это легко сделать с помощью аналога bootcfg: bcdedit /default {current}
а вот на ХР не знаю, как быть.

Последний раз редактировалось Areheu; 29.12.2010 в 17:30.
Areheu вне форума Ответить с цитированием
Старый 29.12.2010, 17:32   #6
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Если работать с boot.ini как с ini-файлом, то задача становится элементарной.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 29.12.2010, 17:40   #7
Areheu
 
Регистрация: 27.11.2009
Сообщений: 5
По умолчанию

Извините, но я впритык не вижу решения задачи. Читать файлы ини не проблема, но вот как узнать, ЧТО ИМЕННО там надо искать.

другой пример boot.ini с той-же системы
Код:
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Винда номер рас" /fastdetect
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Винда номер два" /noexecute=optout /fastdetect
Это теже самые системы.
А вообще я чуть выше написал, что мне надо
Areheu вне форума Ответить с цитированием
Старый 29.12.2010, 19:24   #8
Areheu
 
Регистрация: 27.11.2009
Сообщений: 5
По умолчанию

Ответ нашёлся в реесте:
раздел HKLM\SYSTEM\CurrentControlSet\Contr ol
Areheu вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Boot.ini WF7 Операционные системы общие вопросы 5 28.01.2010 17:42
boot.ini edmynt Операционные системы общие вопросы 10 22.01.2010 17:31
boot.ini и несколько ОС Armorer Операционные системы общие вопросы 5 24.12.2009 14:13
BOOT.ini Syltan Windows 13 25.10.2009 02:11