Теоретически может, поищите поиском, кто-то пытался. По крайней мере можно сделать запись в файл и чтение файла. Не вижу причин чтобы нельзя было запустить файл.
Я пытался, не может. При попытке использовать метод запуска процесса пишет «Метод не поддерживается». Михаил писал, что пока не реализовано. Да и не видят разработчики надобности в этом…к сожалению. Возможно трудности достаточно большие.
Вроде бы плагин «Модуль автоматического управления» умеет?
Я пришел к выводу, что возможен только один вариант:
1. Есть файл (текстовый) в котором есть например цифры «1» и «0»
2. На каком то языке типа C# пишем программу — диспетчер, которая регулярно этот файл (можно по команде «ат» (аналог хрона в Виндах) или просто по шедулингу Виндов и анализирует файл. Если там «0» ничего не происходит, если «1» — запускаем нужную прогу и пишем «0» в файл. В качестве аргумента диспетчеру передаем имя файла.
3. SCADA по событию пишет в файл «1» (вроде бы они это умеет).
В формуле можно попробовать вызвать System.Diagnostics.Process.Start("myfile.bat");
Не знаю, сработает или нет. Исполняемая программа не должна иметь пользовательского интерфейса — служба не может с ним взаимодействовать.
Но вызов других процессов может иметь непредсказуемые побочные эффекты.
Поэтому взаимодействие нужно организовывать через сетевые протоколы, например, HTTP или MQTT. То есть когда другая программа ждёт команд или запросов по сети.
Ага 🙂
Я так делал, «висела» прога на Python и ждала публикации на определенный тэг MQTT. Потом формировала запрос по WebSock к IoT LoraWAN серверу и обратной публикацией MQTT обнуляла канал. Это было из-за того, что существующий шлюз к LNS не позволял писать в регистры ModBus. В принципе в задержку менее секунды укладывалось, так что считай почти RealTime 🙂