Что нового

[Файловая система] Корректный запуск файла

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Требуется функция :

Запускающая Файлы типов : au3 , doc , txt , exe (скомпилированный скрипт AutoIt ) на ЗАПУСК (open) ,
при этом , игнорирующая Файлы типа : exe (не являющиеся скомпилированным AutoIt скриптом ) .

Я пробовал так :
Код:
Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $sFullFileName & '"')

Она нормально запускает Скрипты AutoIt и exe-файл (скомпилированный скрипт AutoIt ) , но при попытке запуска файла (не
AutoIt'овского выдает ошибку и выбивает скрипт.
Как выполнить это корректно ?
 
Автор
G

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
r35p3ct сказал(а):
Но ведь она запустит и exe- файл , не являющийся скомпилированным скриптом ???



Добавлено:
Сообщение автоматически объединено:

В принципе надо корректно обеспечить не выпадение скрипта при ошибке
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Если я верно понял:

Код:
_RunFile(@DesktopDir & "\AutoIt v3 Script.au3")

Func _RunFile($sFile, $sRunExtList = "au3|doc|txt")
	Local $sExt = StringRight($sFile, 3)
	
	If $sExt = "exe" Then
		$sFileVersion = FileGetVersion($sFile, "CompiledScript")
		
		If StringInStr($sFileVersion, "AutoIt") Then
			Return Run($sFile)
		EndIf
	ElseIf StringInStr("|" & $sRunExtList & "|", "|" & $sExt & "|") Then
		Return ShellExecute($sFile)
	EndIf
	
	SetError(1, 0, 0)
EndFunc
 
Верх