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

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

Ответить
Настройки темы
[решено] Поиск программы по имени и ее запуск

Старожил


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


Конфигурация

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


Всем привет!
Не знаю, насколько реальна задача - в скрипте предопределено в коде запуск программы, если она расположена в одной папке со скриптом. Но это может быть и не так. Задача - если программа не обнаружена в папке скрипта, находить ее и запускать. Если не находится - выдавать сообщение.Рабочих примеров нет, программа может быть любой

Отправлено: 22:10, 24-09-2013

 

Аватара для Creat0R

Must AutoIt


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

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


Цитата eus_deus:
Не знаю, насколько реальна задача »
Ты будешь удивлён, но на AutoIt много чего реально .

Цитата eus_deus:
Задача - если программа не обнаружена в папке скрипта, находить ее и запускать »
Встречный вопрос - где искать?

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

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

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:19, 25-09-2013 | #2



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

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


Старожил


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

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


Creat0R, если бы я знал, куда ее могут закидывать люди, было бы просто.. давайте попробуем диск, откуда запускается скрипт

Отправлено: 12:24, 25-09-2013 | #3


Аватара для Creat0R

Must AutoIt


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

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


Цитата eus_deus:
давайте попробуем диск, откуда запускается скрипт »
Можно искать и на всех дисках, но сколько времени это займёт...
Может проще предоставить выбор поиска пользователю, который сам укажет путь?

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

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

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:32, 25-09-2013 | #4


Старожил


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

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


Creat0R, тогда самое простое - вообще ничего не менять и явно сказать, что скрипт должен быть в одной папке с программой.

Отправлено: 14:57, 25-09-2013 | #5


Аватара для Creat0R

Must AutoIt


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

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


Тоже верно.

Но всё таки вот пример поиска первого файла (на всех локальных дисках):

Код: Выделить весь код
$aDrives = DriveGetDrive('FIXED') ;Только локальные диски
$sAppName = 'MyApp.exe'
$sAppPath = ''

For $i = 1 To UBound($aDrives)-1
    $aSearch = _FileSearch($aDrives[$i], $sAppName)

    If Not @error Then
        $sAppPath = $aSearch[1]
        ExitLoop
    EndIf
Next

If $sAppPath <> '' Then
    MsgBox(64, 'Title', $sAppName & ' found as: ' & $sAppPath)
Else
    MsgBox(48, 'Title', $sAppName & ' not found.')
EndIf

Func _FileSearch($sPath, $sFile)
    Local $sOut, $aOut, $sRead, $hDir

    If Not StringInStr(FileGetAttrib($sPath), 'D') Then
        Return SetError(1, 0, 0)
    EndIf

    $sOut = StringToBinary('0' & @CRLF, 2)
    $sPath = StringRegExpReplace($sPath, '\\+$', '')

    $hDir = Run(@ComSpec & ' /U /C DIR "' & $sPath & '\' & $sFile & '" /B /S /A-D', @SystemDir, @SW_HIDE, 6)

    While ProcessExists($hDir)
        $sRead = StdoutRead($hDir, False, True)

        If @error Then
            ExitLoop
        EndIf

        If $sRead <> '' Then
            $sOut &= $sRead

            If StringInStr($sOut, $sFile) Then
                ExitLoop
            EndIf
        EndIf
    Wend

    $aOut = StringRegExp(BinaryToString($sOut, 2), '[^\r\n]+', 3)

    If @error Or UBound($aOut) < 2 Then
        Return SetError(2, 0, 0)
    EndIf

    $aOut[0] = UBound($aOut)-1
    Return $aOut
EndFunc

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

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

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


Отправлено: 17:05, 25-09-2013 | #6


Старожил


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

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


Creat0R, да, поиск катастрофически долгий (около двух минут)

Отправлено: 17:53, 25-09-2013 | #7



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Определение имени папки и ее скачивание по FTP volk1234 Скриптовые языки администрирования Windows 1 10-06-2011 16:19
Теория - Запуск программы от имени администратора. Drongo Программирование и базы данных 9 28-01-2011 01:11
CMD/BAT - [решено] Запуск программы с ее ключами volk1234 Скриптовые языки администрирования Windows 4 18-01-2010 19:13
[решено] Как запрепить запуск программы по имени файла AlxCruel Microsoft Windows 2000/XP 10 05-04-2006 08:58
Запуск программы от имени System ?.. Foxie Microsoft Windows NT/2000/2003 3 19-01-2006 14:52




 
Переход