sendmsg経由でのメッセージ送信を行うのが負担も少なく良いのではないでしょうか。
以下サンプルではsendmsgを使うため(対象ウインドウハンドルを知る為)のファイルマッピングオブジェクトを使っています。
メイン
#include "kernel32.as"
#define FILE_MAP_WRITE 2
#define FILE_MAP_READ 4
#define PAGE_READWRITE 4
mutex="固有の名前"
CreateMutex 0,1,varptr(mutex)
screen 0,200,200
title "メイン"
mapname="testtest"//ファイルマッピングオブジェクト名
CreateFileMapping -1,0,PAGE_READWRITE,0,4,varptr(mapname)//マッピングオブジェクトを作成
hMapobj=stat//ファイルマッピングオブジェクトハンドルを格納
MapViewOfFile hMapobj,FILE_MAP_WRITE,0,0,0
lp=stat//共有メモリ領域の先頭アドレス
dupptr share,lp,4,4//共有領域のクローン変数を作る
share=hwnd//メッセージ用のウインドウハンドルを格納
UnmapViewOfFile lp//ビュー解除
w=1
gsel 0,2
oncmd goto *MESSAGE,0x1234//固有のメッセージ
onexit *EXIT
*MAINLOOP
repeat
redraw 0
color 255,255,255:boxf:color
pos 0,0
mes "カウント:"+c
mes "ウェイト:"+w
redraw 1
c++
await w
loop
stop
//メッセージが来た
*MESSAGE
w=wparam//wparamにウェイト値が入っている
goto *MAINLOOP
//終了時
*EXIT
if hMapobj:CloseHandle hMapobj//マッピングオブジェクトのクローズ
end
制御側
#include "kernel32.as"
#define FILE_MAP_WRITE 2
#define FILE_MAP_READ 4
#define PAGE_READWRITE 4
mutex="固有の名前"
CreateMutex 0,1,varptr(mutex)
GetLastError
if stat==0xB7{
title "メインが起動しています"
}else{
title "メインが起動していません"
}
screen 0,300,200
gsel 0,2
onexit *EXIT
mes "ウェイト値:"
num=50
input num,60,20
button "変更",*SEND
stop
//メッセージ送信
*SEND
if hMapobj==0{
mapname="testtest"//ファイルマッピングオブジェクト名
CreateFileMapping -1,0,PAGE_READWRITE,0,4,varptr(mapname)//マッピングオブジェクトを作成
hMapobj=stat//ファイルマッピングオブジェクトハンドルを格納
}
MapViewOfFile hMapobj,FILE_MAP_WRITE,0,0,0
lp=stat//共有メモリ領域の先頭アドレス
dupptr share,lp,4,4//共有領域のクローン変数を作る
getdata=share//クローン変数から領域の内容を取得
UnmapViewOfFile lp//ビューのマッピング解除
dim share,1
sendmsg getdata,0x1234,num,0//固有のメッセージを送信(wparamにウェイト値)
stop
//終了時
*EXIT
CloseHandle hMapobj//マッピングオブジェクトのクローズ
end