Что нового

Запустить скрипт из VBA

GDK

Новичок
Сообщения
8
Репутация
0
Sc1 Version 1.79; AutoIT v3.

Как запустить скрипт (нескомпилированный) из VBA, VB-программы и т.п.?

Пытался при помощи Win32 API \ ShelExecute запустить. В итоге открылся SciTE в режиме редактирования моего скрипта - не совсем ожидаемый результат, учитывая то что при двойном клике по MyScriptic.au3 он именно запускается. Что при этом происходит...? С учётом описанной реакции думаю запускается SciTE c каким-то параметром неизвестным, запускает интерпретатор, скармливая ему MyScriptic.au3, и самозакрывается.

Ну из положения вышел сделав MyScriptic.exe и в VBA call Shell(MyPath\MyScriptic.exe). Неудобство что при редактировании и пробах скрипта надо не забывать его перекомпилировать. Теряется достоинство скриптовых языков как бы.

Может как нибудь можно настроить интерпретатор & ОС, чтобы .au3 был ассоциирован с интерпретатором, а не с SciTE?
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Может как нибудь можно настроить интерпретатор & ОС, чтобы .au3 был ассоциирован с интерпретатором, а не с SciTE?
Запустите .au3 скрипт с таким кодом:
Код:
RegWrite('HKEY_CLASSES_ROOT\AutoIt3Script\Shell\Run\Command', '', 'REG_SZ', '"' & @AutoItExe & '" "%1" %*')


После этого, все .au3 файлы будут запускатся, а не отрыватся в SciTE :smile:
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
GDK [?]
Как запустить скрипт (нескомпилированный) из VBA, VB-программы и т.п.?

Из vbs:

Код:
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run "Cmd.exe /C Start """" ""C:\Script.au3""", 0, True
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
GDK
1. Первый вариант: запустить reg-файл
Код:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\AutoIt3Script\Shell\Open\Command]
@="\"C:\\Program Files\\AutoIt3\\AutoIt3.exe\" \"%1\" %*"

[HKEY_CLASSES_ROOT\AutoIt3Script\Shell\Run\Command]
@="\"C:\\Program Files\\AutoIt3\\SciTE\\SciTE.exe\" \"%1\""
Если не помог, поменять в нём две под-строчки местами

2. Второй вариант: Использовать настройщик portable_v1.6_AutoIt3

3. Третий вариант: в своём VB скрипте выполнить команду
Код:
"C:\Program Files\AutoIt3\AutoIt3.exe" "C:\MyScriptic.au3"
 

CreatoR

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

[?]
открылся SciTE в режиме редактирования моего скрипта - не совсем ожидаемый результат, учитывая то что при двойном клике по MyScriptic.au3 он именно запускается.
 
Автор
G

GDK

Новичок
Сообщения
8
Репутация
0
Zaramot, там в реестре по этому пути и так это установлено один в один.

Creator, у меня код не vbs, а VBA. Поэтому сделал Call Shell("Cmd.exe /C Start """" ""C:\Script.au3"""). Компилятор нос воротит - выделяет красным.

AZJIO, третий вариант помог, только видоизменил чуток чтобы путь к скрипту с пробелами скормить.
Вот так:
Call Shell("C:\Program Files\AutoIt3\AutoIt3.exe " & Chr(34) & "D:\Документы\ЭТЦ - 5\GDK\GN AUTO\AutoIT\OTDR GN&TraceView.au3" & Chr(34))
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
GDK [?]
Компилятор нос воротит - выделяет красным
Значит что-то неправильно записано.
А по идее Shell сама должна запускать au3 также, как при запуске файла вручную (двойным щелчком по файлу).
 
Верх