程序代码如下:
hwnd := FindWindow(nil, 'xxxxx');
if hwnd = 0 then exit;
WndChild := GetLastActivePopup(hwnd);
if WndChild = 0 then exit;
if (IsIconic(hwnd)) then
ShowWindow(hwnd, SW_SHOWMAXIMIZED);
SetForegroundWindow(WndChild);
sendmessage(WndChild, WM_COPYDATA, 0, 0);可以把该程序激活,但该程序收不到WM_COPYDATA消息。
hwnd := FindWindow(nil, 'xxxxx');
if hwnd = 0 then exit;
WndChild := GetLastActivePopup(hwnd);
if WndChild = 0 then exit;
if (IsIconic(hwnd)) then
ShowWindow(hwnd, SW_SHOWMAXIMIZED);
SetForegroundWindow(WndChild);
sendmessage(WndChild, WM_COPYDATA, 0, 0);可以把该程序激活,但该程序收不到WM_COPYDATA消息。
解决方案 »
- delphiXE restful提交数据
- delphi操作xml的问题
- 我们公司安装了个监控软件, 每个客户端都要安装,VB写的.可以得到上网记录,这是如何做到的?
- 怎么取文本文件中几段文字内容,这几段前后分别有乱码。(分给多了)
- 调用API不成功
- 如何制作 类似于 Access 查询界面 的 TListBox控件的Item 可以拖到 另一个 TListBox (如图)
- FastReport 的 PageFooter在不显示情况下,页面有空白
- 在这种情况下怎样实现?急急急!!!
- Delphi6 !!!
- 高分求解菜鸟问题!!!!!!!!!!!!!
- 调查——这样的水平在北京能找到什么样的工作?
- 在XP中怎么屏蔽功能键?
等于什么都没传嘛。
要定义一个TCopyDataStruct结构变量,再把变量指针传过去,才可以呀。
参考一个例子,
procedure TForm1.Button1Click(Sender: TObject);
var
ds: TCopyDataStruct;
hd: THandle;
begin
ds.cbData := Length(Edit1.Text) + 1;
GetMem(ds.lpData, ds.cbData); //为传递的数据区分配内存
StrCopy(ds.lpData, PChar(Edit1.Text));
Hd := FindWindow(nil, 'Form2'); // 获得接受窗口的句柄
if Hd <> 0 then
SendMessage(Hd, WM_COPYDATA, Handle, Cardinal(@ds)) // 发送WM_COPYDATA消息
else
ShowMessage('目标窗口没找到!');
FreeMem(ds.lpData); //释放资源
end;