|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Поиск программы по имени и ее запуск |
|
[решено] Поиск программы по имени и ее запуск
|
Старожил Сообщения: 156 |
Всем привет!
Не знаю, насколько реальна задача - в скрипте предопределено в коде запуск программы, если она расположена в одной папке со скриптом. Но это может быть и не так. Задача - если программа не обнаружена в папке скрипта, находить ее и запускать. Если не находится - выдавать сообщение.Рабочих примеров нет, программа может быть любой |
|
Отправлено: 22:10, 24-09-2013 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 00:19, 25-09-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать Creat0R, если бы я знал, куда ее могут закидывать люди, было бы просто.. давайте попробуем диск, откуда запускается скрипт
|
Отправлено: 12:24, 25-09-2013 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата eus_deus:
Может проще предоставить выбор поиска пользователю, который сам укажет путь? |
|
------- Отправлено: 14:32, 25-09-2013 | #4 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать Creat0R, тогда самое простое - вообще ничего не менять и явно сказать, что скрипт должен быть в одной папке с программой.
|
|
Отправлено: 14:57, 25-09-2013 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить 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 |
------- Отправлено: 17:05, 25-09-2013 | #6 |
Старожил Сообщения: 156
|
Профиль | Отправить PM | Цитировать Creat0R, да, поиск катастрофически долгий (около двух минут)
|
Отправлено: 17:53, 25-09-2013 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|