AutoIt은 스크립트언어로
http://AutoitScript.com 에서 무료로 제공되고 있습니다.
AuotIt에서 메세지를 전송하고 델파이에서 이 메세지를 받으려 하는데요.
아래는 메세지를 전송하는 AutoIt 소스코드입니다.
;================================================================
#include <SendMessage.au3>
Global Const $StructDef_COPYDATA = "dword var1;dword var2;ptr var3"
Global Const $WM_COPYDATA = 0x4A
$TextToSend = "SendMessage"
$CDString = DllStructCreate("char var1[255]")
DllStructSetData($CDString,1,$TextToSend)
$pCDString = DllStructGetPtr($CDString)
$vs_cds = DllStructCreate($StructDef_COPYDATA)
DllStructSetData($vs_cds, "var1", 0)
DllStructSetData($vs_cds, "var2", StringLen($TextToSend) + 1)
DllStructSetData($vs_cds, "var3", $pCDString)
$pStruct = DllStructGetPtr($vs_cds)
_SendMessage(WinGetHandle("Server"), $WM_COPYDATA, 0, $pStruct)
$vs_cds = 0
$CDString = 0
;=================================================================
다음은 메세지를 수신하는 델파이 소스코드입니다.
//=================================================================
private
{ Private declarations }
procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA;
...
...
...
procedure TForm1.WMCopyData(var Msg: TWMCopyData);
var
sText: array[0..255] of Char;
begin
case Msg.CopyDataStruct.dwData of
0: //we are being sent a string
begin
StrLCopy(sText, Msg.CopyDataStruct.lpData, Msg.CopyDataStruct.cbData);
Edit1.Text := sText;
end;
end;
end;
//=====================================================================
이 소스코드를 실행하면 델파이의 폼에 있는 Edit1에 전송된 데이터가
SendMessage
이렇게 나와야 하는데
潓敭桴湩潦獵琠桳畯⁴扡畯ⅴ
이렇게 깨져서 보입니다.
어디를 어떻게 고쳐야 할지 모르겠습니다.
도움 부탁드립니다.