Что нового

Как передать сообщение(управление) работающему скрипту

zarius

Новичок
Сообщения
8
Репутация
0
Задача: есть висящий в памяти работающий скрипт, необходимо периодически инициировать в нем некоторые действия из стороннего приложения.
Сейчас можно решить данную задачу запуском нового экземпляра скрипта, который при загрузке будет закрывать предыдущий и выполнять действия согласно командной строке, но не совсем нравиться данный вариант. Хотелось бы каким то образом (SendMessege, PostMessege или еще как нибуть) передать сообщение работающему скрипту, который начал бы выполнять обработку входящего сообщения.
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
zarius
http://autoit-script.ru/index.php/topic,164.0.html
 
Автор
Z

zarius

Новичок
Сообщения
8
Репутация
0
Спасибо за наводку, правда в предложенной библиотекой так и не разобрался - нашел более простой и работающий пример уважаемого CreatorA. Дал бы ссылку, но она с другого сайта - могу выложить с разрешения модераторов. Имхо - описание данного механизма надо помещать в FAQ.
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
zarius

Управляющий скрипт - посылает сообщение:
Код:
#include <GuiConstantsEx.au3>
#include <Messages.au3>

GUICreate('Forma1', 400, 300)
$button = GUICtrlCreateButton('button', 90, 90, 200, 120)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case $button
			If _IsReceiver('Forma2#@&') Then _MsgSend('Forma2#@&', 'fgnfgnfn')
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd


Скрипт, принимающий сообщение, после получения сообщения показывает MsgBox и выгружается:
Код:
#include <Messages.au3>

GUICreate('Forma2#@&', 400, 300)

$Timer = _MsgTimerInterval(10)
_MsgRegister('Forma2#@&', '_Receiver')

While 1
	Sleep(10)
WEnd

Func _Receiver($sMessage)
	If StringInStr($sMessage, 'fgnfgnfn') Then
		MsgBox(262144, 'Сообщение', 'Прислано сообщение о выключении скрипта!')
		Exit
	EndIf
EndFunc   ;==>_Receiver


OffTopic:

Имхо, Yashied-у следовало бы добавить более простой пример
 

joiner

Модератор
Локальный модератор
Сообщения
3,570
Репутация
632
на форуме , можно сказать, кучка тем, где обсуждались варианты обмена данными между процессами.
 
Верх