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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как найти и прописать в реестре запуск нужного файла?

Ответить
Настройки темы
[решено] Как найти и прописать в реестре запуск нужного файла?

Аватара для Pozia

Ветеран


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

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


Нужно запустить файл WPI.hta который находится в папке WPI, т.е. файл лежит так \WPI\WPI.hta в корне диска. Букву диска нужно определить по метке \WPI\WPI.hta. Причем файл WPI.hta может лежать на DVD/CD диске или на флешке или на диске веника. То есть скрипт должен запустить такое:

RegWrite($sKey &"\999", "1", "REG_SZ", $sDVD &"\WPI\WPI.hta")

Если пути WPI\WPI.hta нет то ничего делать не нужно.

Вот это главное что хочется.

Можно и хотелось бы сложнее скрипт. Если найдется два пути \WPI\WPI.hta или более то пусть выскакивает сообщение об этом и возможность выбора с какой буквы диска запустить скрипт.

Спасибо в любом случае.

Отправлено: 23:58, 11-03-2009

 

Аватара для Creat0R

Must AutoIt


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

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


Цитата Pozia:
Букву диска нужно определить по метке \WPI\WPI.hta »
Какой метке, откуда скрипт будет знать где искать диск? или сам скрипт будет там и находиться?

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

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

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


Отправлено: 00:17, 12-03-2009 | #2



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

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


Аватара для Pozia

Ветеран


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

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


Creat0R, скрипт не важно откуда запущен. Он должен найти файл WPI.mht который находится в папке WPI. Сама папка WPI может находится в корне любого диска (диск винчестера, флешки, DVD...). Метка по которой скрипт должен искать и является сам путь к файлу диск:\WPI\WPI.hta

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 00:27, 12-03-2009 | #3


Аватара для Creat0R

Must AutoIt


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

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


Цитата Pozia:
Он должен найти файл »
С этого и следовало начинать, что скрипт должен искать файл, а не определять букву диска...

Код: Выделить весь код
#include <GuiConstantsEx.au3>
#include <ComboConstants.au3>

$sWPI_Drives = ""
$sSel_Drive = ""
$sFirst_Drive = ""

$sKey = "HKEY_LOCAL_MACHINE\SOFTWARE"

$aDrives = DriveGetDrive("All")

For $i = 1 To $aDrives[0]
    If $aDrives[$i] = "a:" And DriveStatus($aDrives[$i]) <> "READY" Then ContinueLoop

    If FileExists($aDrives[$i] & "\WPI\WPI.hta") Then
        If $sWPI_Drives = "" Then $sFirst_Drive = $aDrives[$i]
        $sWPI_Drives &= StringUpper($aDrives[$i]) & "|"
    EndIf
Next

$sWPI_Drives = StringRegExpReplace($sWPI_Drives, "\|+$", "")

If StringInStr($sWPI_Drives, "|") Then
    $hGUI = GUICreate("Select Drives", 300, 200)

    $Drives_Combo = GUICtrlCreateCombo("", 20, 20, 170, 20, $CBS_DROPDOWNLIST)
    GUICtrlSetData(-1, $sWPI_Drives, $sFirst_Drive)

    $OK_Button = GUICtrlCreateButton("OK", 20, 170, 60, 20)
    $Cancel_Button = GUICtrlCreateButton("Cancel", 90, 170, 60, 20)

    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 $sWPI_Drives <> "" Then
    $sSel_Drive = $sWPI_Drives
EndIf

If $sSel_Drive <> "" Then RegWrite($sKey & "\999", "1", "REG_SZ", $sSel_Drive & "\WPI\WPI.hta")

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

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

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:20, 12-03-2009 | #4


Аватара для Pozia

Ветеран


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

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


Creat0R, скрипт работает но с недостатком о котором я говорил здесь То есть из за кард рийдера выскакивает окно с сообщением непонятным и только после нескольких нажатий скрипт продолжает работу. Можно ли это обойти? Поиск на дисках кард рийдера необязателен если скрипт средствами автоит можно задать не искать там.

И еще. Можно ли уменьшить размеры окно которое появляется с выбором диска? Более коипактным его ходелось бы увидеть. Какие строки скрипта за это отвечают

Спасибо.

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 07:44, 12-03-2009 | #5


Аватара для Creat0R

Must AutoIt


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

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


Цитата Pozia:
Поиск на дисках кард рийдера необязателен »
Поиск нужен только на CDRoom'ах?

Цитата Pozia:
Какие строки скрипта за это отвечают »
GUICreate("Select Drives", 300, 200).

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

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

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


Отправлено: 10:13, 12-03-2009 | #6


Аватара для Pozia

Ветеран


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

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


Creat0R, поиск нужен на дисках винчестера, на USВ флешках, на DVD или CD дисках и на USВ винчестерах. Вот именном кард рийдер трогать не нужно вообще. Если просто искать на DVD или CD то я вроде имею представление как поменять ваш скрипт.

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 12:04, 12-03-2009 | #7


Аватара для Creat0R

Must AutoIt


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

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


Цитата Pozia:
кард рийдер трогать не нужно вообще »
А как определить что это кард рийдер? это ведь тоже числится как внешнее устройство (как и USB винчестер), т.е «REMOVABLE».
Или буква этого ридера известна заранее?

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

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

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


Отправлено: 13:36, 12-03-2009 | #8


Аватара для Pozia

Ветеран


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

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


Creat0R, видимо никак нельзя определить что это кард рийдер а не флешка буквы дисков кард рийдера не известны. А может как то можно средствами автоит подавить возникающие окна и чтобы скрипт работал дальше не ожидая нажатия Продолжить?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 14:01, 12-03-2009 | #9


Аватара для Creat0R

Must AutoIt


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

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


А если так:

Код: Выделить весь код
#include <GuiConstantsEx.au3>
#include <ComboConstants.au3>
;

$sWPI_Drives = ""
$sSel_Drive = ""
$sFirst_Drive = ""

$sKey = "HKEY_LOCAL_MACHINE\SOFTWARE"

$aDrives = DriveGetDrive("All")

For $i = 1 To $aDrives[0]
    If DriveStatus($aDrives[$i]) <> "READY" Then ContinueLoop

    If FileExists($aDrives[$i] & "\WPI\WPI.hta") Then
        If $sWPI_Drives = "" Then $sFirst_Drive = $aDrives[$i]
        $sWPI_Drives &= StringUpper($aDrives[$i]) & "|"
    EndIf
Next

$sWPI_Drives = StringRegExpReplace($sWPI_Drives, "\|+$", "")

If StringInStr($sWPI_Drives, "|") Then
    $hGUI = GUICreate("Select Drives", 200, 100)

    $Drives_Combo = GUICtrlCreateCombo("", 20, 20, 170, 20, $CBS_DROPDOWNLIST)
    GUICtrlSetData(-1, $sWPI_Drives, $sFirst_Drive)

    $OK_Button = GUICtrlCreateButton("OK", 20, 70, 60, 20)
    $Cancel_Button = GUICtrlCreateButton("Cancel", 130, 70, 60, 20)

    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 $sWPI_Drives <> "" Then
    $sSel_Drive = $sWPI_Drives
EndIf

If $sSel_Drive <> "" Then RegWrite($sKey & "\999", "1", "REG_SZ", $sSel_Drive & "\WPI\WPI.hta")

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

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

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:36, 12-03-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как найти и прописать в реестре запуск нужного файла?

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - HELP! Как прописать в реестре SP2 не устанавливая оного??? emperor-august Microsoft Windows 2000/XP 2 05-10-2009 11:38
CMD/BAT - [решено] Как организовать поиск нужного диска и запуск с него приложения? Nun-Nun Скриптовые языки администрирования Windows 16 28-05-2009 22:12
[решено] Как написать скрипт о проверке нужного файла на съемном носителе? Pozia AutoIt 12 05-03-2009 20:20
VBS/WSH/JS - [решено] Stop цикл при обнаружении нужного значения из файла Afon Скриптовые языки администрирования Windows 4 26-01-2009 15:16
[решено] Как запрепить запуск программы по имени файла AlxCruel Microsoft Windows 2000/XP 10 05-04-2006 08:58




 
Переход