Что нового

Коммуникация между скриптами

VadimKHL

Новичок
Сообщения
157
Репутация
0
Всех приветствую.
Подскажите, можно ли как то передавать данные между двумя скриптами, мелкие, в виде флагов, без записи в файл?
Допустим первое приложение работает с ком портом, которое должно передать сообщение другому приложению, если вдруг оно потеряла связь с портом.
Может можно как то через Dummy это реализовать или события OnEvent?
Подскажите пожалуйста.
 

Prog

Продвинутый
Сообщения
605
Репутация
77
Можно организовать связь через клиент - сервер или отправлять сообщения окну.
 

All2khoff

Продвинутый
Сообщения
385
Репутация
70
Два скрипта, не проверялось на реальном компорте.... материнский запускает дочку и уточняет какой порт читать,
а дочка проверяет доступность порта, после чего передаёт информацию маме.

Код:
;mather.au3
; Указываем COM-порт для проверки
Local $comPort = "COM-1" ; Измените на нужный вам COM-порт

; Запускаем дочерний скрипт и передаем номер COM-порта
Local $processID = Run('AutoIt3.exe "chield.au3" "' & $comPort & '"', "", @SW_HIDE, 1)


; Ждем завершения дочернего процесса и получаем вывод
Local $output = StdoutRead($processID)

; Убираем пробелы с обеих сторон
$output = StringStripWS($output, 1)

; Выводим результат в консоль
ConsoleWrite("Полученный результат: " & $output & @CRLF)

; Проверяем результат с использованием Select Case
Select
    Case $output = TRUE
        ConsoleWrite("COM-порт " & $comPort & " доступен."& @CRLF)
    Case $output = FALSE
        ConsoleWrite("COM-порт " & $comPort & " недоступен."& @CRLF)
    Case Else
        ConsoleWrite("Неизвестный результат: " & $output& @CRLF)
EndSelect


Код:
;chield.au3
; Получаем номер COM-порта из аргументов командной строки
Local $comPort = $CmdLine[1]

; Проверяем, был ли передан номер COM-порта
If Not StringLen($comPort) Then
    ConsoleWrite("Ошибка: Не указан COM-порт." & @CRLF)
    Exit
EndIf

; Выводим номер порта для отладки
;~ ConsoleWrite("Проверка порта: " & $comPort & @CRLF)

; Открываем COM-порт для чтения
Local $hComPort = FileOpen($comPort, 0)

; Проверяем, удалось ли открыть порт
If $hComPort = -1 Then
    ; Порт недоступен
;~     ConsoleWrite("FALSE" & @CRLF)
Else
    ; Порт доступен
;~     ConsoleWrite("TRUE" & @CRLF)
    FileClose($hComPort) ; Закрываем порт
EndIf
 
Верх