|
在网上查了些资料,两个程序之间可以利用_WM_COPYDATA来传递数据。由于我是新手,对结构和指针不太了解,我写的代码无法实现,特来论坛向高手请教,请求高手帮我纠正一下。
发送方代码:
- import win.ui;
- /*DSG{{*/
- mainForm = win.form(text="发送方";right=232;bottom=193)
- mainForm.add(
- button={cls="button";text="发送";left=85;top=86;right=146;bottom=106;z=1}
- )
- /*}}*/
- mainForm.enableDpiScaling();
- mainForm.show();
- mainForm.button.oncommand = function(id,event){
- class COPYDATASTRUCT {
- int dwData;
- int cbData;
- pointer lpData;
- }
- copyData = COPYDATASTRUCT();
- var str = "Hello,1,2,3,4"; //侍发送的数据
- copyData.dwData = 0;
- copyData.cbData = #str
- copyData.lpData = str
- var hwnd = winex.find(,"接收方")
- SendMessageByStruct(hwnd,0x4A/*_WM_COPYDATA*/,mainForm.hwnd,copyData);
-
- }
- return win.loopMessage();
复制代码
接收方代码:
- import win.ui;
- /*DSG{{*/
- mainForm = win.form(text="接收方";left=-100;top=-100;right=139;bottom=118)
- mainForm.add()
- /*}}*/
- mainForm.wndproc = function(hwnd,message,wParam,lParam){
- select( message ) {
- case 0x4A/*_WM_COPYDATA*/{
- str = raw.tostring(topointer(lParam))
- mainForm.msgbox(str,winex.getText(wParam))
- }
- else{
-
- }
- }
- //无返回值则继续调用默认回调函数
- }
- mainForm.enableDpiScaling();
- mainForm.show();
- return win.loopMessage();
复制代码
|
|