|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как назначить букву DVD приводу с помощью Автоит подобно как CMD? |
|
|
[решено] Как назначить букву DVD приводу с помощью Автоит подобно как CMD?
|
Ветеран Сообщения: 2756 |
Вы знаете что, чтобы назначить букву DVD приваду можно запустить такое из CMD:
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\WIN51 set CDROM=%%i: set DVD=%CDROM% SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx REG ADD %KEY%\910 /V 1 /D "REGEDIT /S %DVD%\$OEM$\HKLM.reg" /f REG ADD %KEY%\920 /V 1 /D "hidcon.exe Shutdown -r -f -t 0" /f REG ADD %KEY%\999 /V 1 /D "%DVD%\WPI\WPI.hta" /f exit Все бы хорошо да только при наличии кард рийдера в компе этот способ не годится для автоустановки винды, так как выскакивают сообщения (количество их равное количеству мест под флешку в кард рийдере) с какими то кракобяками и кнопками Да Нет Продолжить. После нескольких нажатий продолжить все же этот метод срабатывает. Как прочел где то здесь на форуме это происходит из за того что в кард рийдере нет флешек. Вот собственно вопрос - можно ли этот способ присвоения буквы DVD приводу записать в Автоит без описанного недостатка? Помогите как. Сам не силен. Спасибо. |
|
Отправлено: 12:28, 27-02-2009 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать $sKey = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx" $aDrives = DriveGetDrive("CDROM") For $i=1 To $aDrives[0] If FileExists($aDrives[$i] &"\WIN51") Then $sDVD = $aDrives[$i] Next RegWrite($sKey &"\910", "1", "REG_SZ","REGEDIT /S "& $sDVD &"\$OEM$\HKLM.reg") RegWrite($sKey &"\920", "1", "REG_SZ", "hidcon.exe Shutdown -r -f -t 0") RegWrite($sKey &"\999", "1", "REG_SZ", $sDVD &"\WPI\WPI.hta") |
Отправлено: 13:04, 02-03-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать amel27, вы как всегда маг и волшебник. Щелкаете проблемы мои как орешки. С кардрийдером проблема ушла, молчит. Появилась теперь другая проблема. Если в DVD приводе диска нет или находится другой без путей которые хочет добавить скрипт (%DVD%\$OEM$\HKLM.reg и %DVD%\WPI\WPI.hta) то выскакивает ошибка с надписью:
Line 8 (File путь к скрипту... ) RegWrite($sKey &"\910", "1", "REG_SZ","REGEDIT /S "& $sDVD &"\$OEM$\HKLM.reg") RegWrite($sKey &"\999", "1", "REG_SZ", $sDVD &"\WPI\WPI.hta") Error: Variabl used without being declared. И кнопка OK. И в реестр ничего вообще не добовляется. Можно ли как нибудь сделать чтобы производилась проверка наличия нужного диска с правильными путями к файлам и при его отсутствии выскакивало сообщение о необходимости вставить диск и кнопка OK для подтверждения??? |
------- Отправлено: 18:23, 02-03-2009 | #3 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать amel27, а как правильно записать в скрипт вот это:
REG ADD %KEY%\920 /VE /D "Перезагрузка..." /f ? |
------- Отправлено: 23:04, 02-03-2009 | #4 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Pozia:
$sKey = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx" $sTag = "WIN51" $sDVD = "" $aDrives = DriveGetDrive("CDROM") While 1 For $i=1 To $aDrives[0] If FileExists($aDrives[$i] &"\"& $sTag) Then $sDVD = $aDrives[$i] Next If StringLen($sDVD)>0 Then ExitLoop MsgBox(48, "Прерывание", 'Вставьте диск с дистрибутивом и нажмите "OK" для продолжения установки.') WEnd RegWrite($sKey &"\910", "1", "REG_SZ","REGEDIT /S "& $sDVD &"\$OEM$\HKLM.reg") RegWrite($sKey &"\920", "1", "REG_SZ", "hidcon.exe Shutdown -r -f -t 0") RegWrite($sKey &"\999", "1", "REG_SZ", $sDVD &"\WPI\WPI.hta") RegWrite($sKey &"\920", "" , "REG_SZ", "Перезагрузка...") Цитата Pozia:
|
|||
Отправлено: 12:35, 03-03-2009 | #5 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать amel27, спасибо огромное!!! Я уже подумывал кардрийдер выбрасывать и покувать внешний съемный. Спасли!!!
|
------- Отправлено: 18:42, 03-03-2009 | #6 |
Пользователь Сообщения: 132
|
Профиль | Отправить PM | Цитировать спасибо ребята,сегодня мой день,прям в точки попадаю )) думал создать такую тему но оказывается я не один.Незнаю,но я полюбил этот сайт
|
------- Отправлено: 10:35, 15-04-2009 | #7 |
Старожил Сообщения: 183
|
Профиль | Отправить PM | Цитировать добрые люди, подправте скриптик так чтобы можно было запускать файл из текущей сессии, а не после перезагрузки. Мне надо запустить файл после полной загрузки OS, ну вот такой вот я превереда, уж извените, если что.
|
Отправлено: 19:30, 13-01-2010 | #8 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать FreshMen85,
#NOtrayIcon #include <GuiConstantsEx.au3> #include <ComboConstants.au3> ; $sBSPI_Drives = "" $sSel_Drive = "" $sFirst_Drive = "" $aDrives = DriveGetDrive("All") ;============================================================================= For $i = 1 To $aDrives[0] If DriveStatus($aDrives[$i]) <> "READY" Then ContinueLoop If FileExists($aDrives[$i] & "\BSPI\Presetup.exe") Then If $sBSPI_Drives = "" Then $sFirst_Drive = $aDrives[$i] $sBSPI_Drives &= StringUpper($aDrives[$i]) & "|" EndIf Next $sBSPI_Drives = StringRegExpReplace($sBSPI_Drives, "\|+$", "") If StringInStr($sBSPI_Drives, "|") Then $hGUI = GUICreate("Выберите диск запуска BSPI", 240, 50) $Drives_Combo = GUICtrlCreateCombo("", 20, 20, 40, 20, $CBS_DROPDOWNLIST) GUICtrlSetData(-1, $sBSPI_Drives, $sFirst_Drive) $OK_Button = GUICtrlCreateButton("OK", 80, 19, 60, 25) $Cancel_Button = GUICtrlCreateButton("Cancel", 160, 19, 60, 25) GUISetState(@SW_SHOW, $hGUI) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $Cancel_Button Exit Case $OK_Button $sSel_Drive = GUICtrlRead($Drives_Combo) ExitLoop EndSwitch WEnd ElseIf $sBSPI_Drives <> "" Then $sSel_Drive = $sBSPI_Drives EndIf If $sSel_Drive <> "" Then RunWait($sSel_Drive & "\BSPI\Presetup.exe") ;============================================================================= |
------- Последний раз редактировалось Pozia, 14-01-2010 в 21:24. Отправлено: 18:08, 14-01-2010 | #9 |
Старожил Сообщения: 183
|
Профиль | Отправить PM | Цитировать Pozia, спасибо конечно, но мне немного труднова-то разобратся в твоём скрипте. Он сильно большой и я не могу проследить что за что отвечает. Может если тебе это не сильно трудно, сделаеш скрипт на такой вот путь: %CDROM%\AutoInstall\Install_Soft.bat
P.S. Вчера запускал скрипт от amel27, всё было нормально, сегодня востановил старую винду акронисом, скрипт не работаеат, пишет про ошибку в первой строчке. Вобщем мозги скоро начнут плавится, а загадок меньше не становится. Да кстати ещё на одной востановленной версии винды команда: for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\WIN51 set CDROM=%%i: , отработала нормально, вот так вот... |
Отправлено: 19:15, 14-01-2010 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] как принудительно назначить подключаемой флешке определенную букву | Udaff_es | Microsoft Windows 2000/XP | 7 | 03-05-2011 18:19 | |
Установка - [решено] Не могу назначить букву раздела. | JOSEF | Microsoft Windows 7 | 2 | 22-12-2009 15:48 | |
[решено] Буфер обмена с помощью Автоит | Str_ani_ck | AutoIt | 15 | 07-08-2009 03:12 | |
[решено] Как с помощью CMD(BAT) запустить запароленный sfx архив! | ofcoss | Автоматическая установка приложений | 7 | 10-07-2009 00:41 | |
Как назначить CD-ROM фиксированную букву | Retvizan | Автоматическая установка Windows 2000/XP/2003 | 14 | 15-11-2008 07:27 |
|