先运行接收端.ahk,再运行发送端.ahk测试【需要互相通信就两端都创建唯一隐藏窗口】
接收端.ahk
; 先运行接收端.ahk,再运行发送端.ahk测试【需要互相通信就两端都创建唯一隐藏窗口】 Gui Gui_Label_Gui: Show, Hide, <<接收端的唯一隐藏窗口名>> OnMessage(0x4a, "ExecReceive_WM_COPYDATA") return ; 更多详见帮助文档:https://wyagd001.github.io/zh-cn/docs/lib/OnMessage.htm ; 接收字符串后保存在变量名为"收到的字符串",以供调用 ExecReceive_WM_COPYDATA(wParam, lParam) { Global 收到的字符串 := StrGet(NumGet(lParam + 2*A_PtrSize)) Try Gosub ExecReturn%wParam% Return true } ; ExecSend的参3不带标签,就默认向主进程发送信息,接收信息后跳转到ExecReturn0【默认为"0"】 ExecReturn0: ToolTip %收到的字符串% Return ; ExecSend的参数3设置为2时,进入这个ExecReturn2标签 ExecReturn2: ExitApp Return
发送端.ahk
; 先运行接收端.ahk,再运行发送端.ahk测试【需要互相通信就两端都创建唯一隐藏窗口】 ExecSend("发送端发送的字符串 - 并延时2秒", "<<接收端的唯一隐藏窗口名>>", 0) Sleep 2000 ExecSend("关闭接收进程的示例", "<<接收端的唯一隐藏窗口名>>", 2) return ; 更多详见帮助文档:https://wyagd001.github.io/zh-cn/docs/lib/OnMessage.htm ExecSend(StringToSend, Label="WinTitle", flag=0) { VarSetCapacity(CopyDataStruct, 3*A_PtrSize, 0) , NumPut((StrLen(StringToSend) + 1) * (A_IsUnicode ? 2 : 1), CopyDataStruct, A_PtrSize) , NumPut(&StringToSend, CopyDataStruct, 2*A_PtrSize) DetectHiddenWindows % ("On", DHW:=A_DetectHiddenWindows) WinGet, NewPID, PID, %Label% ahk_class AutoHotkeyGUI SendMessage, 0x4a, flag, &CopyDataStruct,, ahk_pid %NewPID% ahk_class AutoHotkey DetectHiddenWindows %DHW% Return ErrorLevel }
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)