兩個進程,點第一個進程時,如果另一個進程是已打開的話,就先新建一個窗口(子窗體),我用了RegisterWindowMessage和sendmessage可以,不過同時還要傳遞一個字符串,怎麼在第一個程序中傳字符串,在另一個程序中可以收到
sendmessage(HWND_BROADCAST,WM_COPYDATA,1, Cardinal(@P))這個形式是可以,不過用了這種的話,那麼新建子窗體就不行了,而且會直接打開火狐
程序一
INTERMSG := RegisterWindowMessage('aaa');
sendmessage(HWND_BROADCAST, INTERMSG, handle, 0);
程序二
Msg2 := RegisterWindowMessage('aaa');
if Message.Msg = Msg2 then
begin
end;
sendmessage(HWND_BROADCAST,WM_COPYDATA,1, Cardinal(@P))這個形式是可以,不過用了這種的話,那麼新建子窗體就不行了,而且會直接打開火狐
程序一
INTERMSG := RegisterWindowMessage('aaa');
sendmessage(HWND_BROADCAST, INTERMSG, handle, 0);
程序二
Msg2 := RegisterWindowMessage('aaa');
if Message.Msg = Msg2 then
begin
end;
第一,用WM_CopyData消息
第二,用内存映射,写入内容后,通知另一个进程,然后另一个进程去open那个映像,读取内容