-----------------------------------------------------------------
var 默认过程
function 置NOTIFYICONDATA()
var NOTIFYICONDATA=array()
NOTIFYICONDATA["cbSize"]=array("long"=1,"value"=0)
NOTIFYICONDATA["hWnd"]=array("long"=1,"value"=0)
NOTIFYICONDATA["uId"]=array("long"=1,"value"=0)
NOTIFYICONDATA["uFlags"]=array("long"=1,"value"=0)
NOTIFYICONDATA["ucallbackMessage"]=array("long"=1,"value"=0)
NOTIFYICONDATA["hIcon"]=array("long"=1,"value"=0)
NOTIFYICONDATA["szTip"]=array("wchar"=0,"value"=0)
return NOTIFYICONDATA
end
function 窗口回调(句柄,消息,w参数,l参数)
if(消息==12345)
select(l参数)
case 517
traceprint("托盘右键弹起")
case 515
traceprint("托盘双击")
end
elseif(消息==123456)
if(w参数==123&&l参数==456)
var NOTIFYICONDATA
NOTIFYICONDATA=置NOTIFYICONDATA()
NOTIFYICONDATA["hWnd"]["value"]=句柄
NOTIFYICONDATA["uId"]["value"]=1
NOTIFYICONDATA["uFlags"]["value"]=7
NOTIFYICONDATA["ucallbackMessage"]["value"]=12345
NOTIFYICONDATA["hIcon"]["value"]=0
NOTIFYICONDATA["szTip"]["wchar"]=1
NOTIFYICONDATA["szTip"]["value"]=0
NOTIFYICONDATA["cbSize"]["value"]=结构体长度(NOTIFYICONDATA)
dllcall("shell32.dll","long","Shell_NotifyIconW","long",2,"pstruct",NOTIFYICONDATA)
end
end
return dllcall("user32.dll","long","CallWindowProcW","long",默认过程,"long",句柄,"long",消息,"long",w参数,"long",l参数)
end
function 创建托盘(窗口句柄,托盘文本,自定义消息=12345)
var NOTIFYICONDATA,回调指针
NOTIFYICONDATA=置NOTIFYICONDATA()
NOTIFYICONDATA["hWnd"]["value"]=窗口句柄
NOTIFYICONDATA["uId"]["value"]=1
NOTIFYICONDATA["uFlags"]["value"]=7
NOTIFYICONDATA["ucallbackMessage"]["value"]=自定义消息
NOTIFYICONDATA["hIcon"]["value"]=窗口发送消息(窗口句柄,127,0,0)
NOTIFYICONDATA["szTip"]["wchar"]=字符串长度(托盘文本)+1
NOTIFYICONDATA["szTip"]["value"]=托盘文本
NOTIFYICONDATA["cbSize"]["value"]=结构体长度(NOTIFYICONDATA)
dllcall("shell32.dll","long","Shell_NotifyIconW","long",0,"pstruct",NOTIFYICONDATA)
回调指针=回调函数申请("窗口回调","DIALOGPROC")
默认过程=dllcall("user32.dll","long","GetWindowLongW","long",窗口句柄,"long",-4)
dllcall("user32.dll","long","SetWindowLongW","long",窗口句柄,"long",-4,"long",回调指针)
end