Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] @BootDir - (активный диск) директория загрузчика windows

Ответить
Настройки темы
[решено] @BootDir - (активный диск) директория загрузчика windows

Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


Изменения
Автор: semiono
Дата: 08-03-2010
Какой более логичный способ получить переменную @BootDir ?

Я не сразу заметил существующую проблему:
Код: Выделить весь код
$i = IniRead(@HomeDrive & "\BOOT.INI", "boot loader", "default", "multi(0)disk(0)rdisk(0)partition(1)")

	IniWrite(@HomeDrive & "\BOOT.INI", "boot loader", "timeout", "3")
	IniWrite(@HomeDrive & "\BOOT.INI", "operating systems", $i, '"ntoskrnl.exe" /fastdetect')
И мне ещё важно то, что скрипт запускается на t12 установки windowsxp, поэтому чтение из реестра может быть и корректно,
но всё же может быть всякие неопределённости.
?

Тут лучшее могло бы быть, найти активный диск (0x80), но средствами au3 это наверное невозможно.
И вообще такая переменная @BootDir не помешала бы наряду с @HomeDir итп.

-------
Полезное сообщение


Отправлено: 03:50, 06-03-2010

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Предупреждение за нарушение правил форума, пункт 2.7:

Цитата:
В заголовке темы обязательно обозначайте название предмета, которого касается вопрос, а в теле сообщения максимально подробно опишите проблему (приведите аппаратную/программную конфигурацию, а также изложите ситуацию, в которой возникает проблема).
Переименуйте пожалуйста тему.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 12:54, 06-03-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


@BootDir - краткость не сестра, как это говориться таланта, удлинил название хотя всем известно как пример, например, @HomeDir
Недостаток автоита в том, что он не покрывает все существующие переменные хотя бы WinXP. Как скриптовый язык он обязан это иметь...

-------
Полезное сообщение


Отправлено: 22:01, 08-03-2010 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


А теперь пояснее, что должна представлять переменная @BootDir? папка системного диска? @HomeDrive тогда.

Цитата semiono:
Тут лучшее могло бы быть, найти активный диск (0x80), но средствами au3 это наверное невозможно. »
Что значит активный диск? диск на котором запущен скрипт? тогда через «StringLeft(@ScriptDir, 2)».

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 23:44, 08-03-2010 | #4


Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


Лично я другого способа не знаю.

Код: Выделить весь код
$BootDir = StringRegExpReplace(RegRead('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup', 'BootDir') & '\', '\\+[^\\]*$', '')
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:09, 09-03-2010 | #5


Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


Yashied, спасибо! Я не сразу сообразил где в реестре это посмотреть, да это то что надо!
Цитата Creat0R:
Что значит активный диск? »
Нет! Я имею ввиду диск в "mbr" которго число 80h записанно, смещение не помню...
Программы загрузчики считают такой диск активным. Но это дебри уже, я просто не знал сразу
за что зацепиться, чтоб наверняка было.
Цитата Creat0R:
папка системного диска? »
Нет. Система может быть установлена на диск D:, а загрузчик ntldr может находиться на диске C:
В первом посте я говорил, что надо изменить BOOT.INI, который всегда находится рядом с NTLDR

Вообще, если два физических диска, то BootDir может быть даже D: если зделать (FDisk) второй диск активным

-------
Полезное сообщение


Отправлено: 03:08, 09-03-2010 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] @BootDir - (активный диск) директория загрузчика windows

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено




 
Переход