HSPからDirectSSTP経由でSSP(デスクトップマスコット)に通知するサンプル

HSPからDirectSSTP経由でSSP(デスクトップマスコット)に通知するサンプル

HSPからDirectSSTP経由でSSP(デスクトップマスコット)に通知するサンプル

  • hk1v
  • 2013/8/27 14:45
  • タグ:
  • タグはありません
#include "kernel32.as"
#include "user32.as"
#define MUTEX_ALL_ACCESS 0x1f0001
#define PAGE_READONLY 0x02
#define ERROR_ALREADY_EXISTS 183
#define FILE_MAP_READ 4
#define WM_COPYDATA 0x004a
hSakura = 0
OpenMutex MUTEX_ALL_ACCESS, 0, "ssp"
hMX = stat
if hMX != 0 {
OpenFileMapping FILE_MAP_READ, 0, "Sakura"
hObj = stat
if hObj != 0 {
MapViewOfFile hObj, FILE_MAP_READ, 0, 0, 65536
if stat != 0 {
ptr = stat
dupptr tmp, ptr+4, 65536, 2
size = strlen(tmp)
sdim buf, size
memcpy buf, tmp, size, 0, 0
UnmapViewOfFile ptr
tmp = 0
bell = "" : poke bell, 0, 1
notesel buf
repeat notemax
noteget tmp, cnt
sdim tmp2, 64, 1 : sdim tmp3, 64, 1
split tmp, bell, tmp2
split tmp2(0), ".", tmp3
if tmp3(1) == "hwnd"{
hSakura = int(tmp2(1))
}
loop
noteunsel
}
CloseHandle hObj
}
CloseHandle hMX
}
if hSakura != 0{
data = "NOTIFY SSTP/1.1\nSender: \nEvent: onTalk\nScript: \\t\\1\\s[10]\\\s[0]Test!!\\e\nHWnd: "+hwnd+"\nCharset: Shift_JIS\n\n"
dim cds, 3
cds(0) = data_id
cds(1) = strlen(data)
cds(2) = varptr(data)
sendmsg hSakura, WM_COPYDATA, hwnd, varptr(cds)
mes data
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX