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

Ответить
Аватара пользователя
semiono

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

Сообщение semiono »

Какой более логичный способ получить переменную @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 итп.
Аватара пользователя
Creat0R

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

Сообщение Creat0R »

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




Цитата:



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



Переименуйте пожалуйста тему.
Аватара пользователя
semiono

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

Сообщение semiono »

@BootDir - краткость не сестра, как это говориться таланта, удлинил название хотя всем известно как пример, например, @HomeDir

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

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

Сообщение Creat0R »

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




Цитата semiono:



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




Что значит активный диск? диск на котором запущен скрипт? тогда через «StringLeft(@ScriptDir, 2)».
Аватара пользователя
Yashied

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

Сообщение Yashied »

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





Код:

Код: Выделить всё

$BootDir = StringRegExpReplace(RegRead('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup', 'BootDir') & '\', '\\+[^\\]*$', '')
Аватара пользователя
semiono

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

Сообщение semiono »

Yashied, спасибо! Я не сразу сообразил где в реестре это посмотреть, да это то что надо!
Цитата Creat0R:



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




Нет! Я имею ввиду диск в "mbr" которго число 80h записанно, смещение не помню...

Программы загрузчики считают такой диск активным. Но это дебри уже, я просто не знал сразу

за что зацепиться, чтоб наверняка было.


Цитата Creat0R:



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




Нет. Система может быть установлена на диск D:, а загрузчик ntldr может находиться на диске C:

В первом посте я говорил, что надо изменить BOOT.INI, который всегда находится рядом с NTLDR



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

Вернуться в «AutoIt»