D7代码到XE后无效,该怎么解决

D7代码到XE后无效
procedure TForm1.btn1Click(Sender: TObject);
var
  h:HWND;
  cmd:string;
  cpd : COPYDATASTRUCT;
begin
  h := FindWindow('ACG!',nil);
  cmd := 'connect 61.152.242.114:27014';
  cpd.cbData := Length(cmd)+1;
  cpd.lpData := pchar(cmd);
  SendMessage(h,WM_COPYDATA,$12,Lparam(@cpd));
end;

这个代码在D7下是能编译也有效果,到XE后能编译但是执行后没有效果不知道问题出在那里

------解决方案--------------------
或者说如果ACG这个程序不是你写的,你不能修改它,比如说ACG这个程序是使用ansi字符的,
那么你发送消息这边也使用ansi就得了
var
cmd:ansistring;
....
cpd.lpData := pansichar(cmd);