Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[14869] Re:Re:Autoit과 Delphi간의 메세지를 주고 받는데 데이터가 깨져서 들어옵니다.
하두고 [] 2084 읽음    2013-11-27 01:13
카일릭스님 답변 감사합니다.
항상 어려움에 부딧힐때마다 많은 도움 받고 있네요^^
일단 힌트는 찾았는데 해결 방법 찾는게 일이네요.
그것도 공부니 열심히 찾아보겠습니다.
답변 다시 한 번 감사드립니다.


kylix 님이 쓰신 글 :
: AutoIt(?)과 델파이의 문자셋(character set)을 확인해보시고 두개를 같이 맞춰주세요.
:
: UTF-8로 보냈는데 Ansi로 읽거나 하면 당연히 그런 현상이 생깁니다.
:
: 하두고 님이 쓰신 글 :
: : 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
: :
: : 이렇게 나와야 하는데
: :
: : 潓敭桴湩⁧潦⁲獵琠桳畯⁴扡畯ⅴ
: :
: : 이렇게 깨져서 보입니다.
: :
: : 어디를 어떻게 고쳐야 할지 모르겠습니다.
: :
: : 도움 부탁드립니다.

+ -

관련 글 리스트
14865 Autoit과 Delphi간의 메세지를 주고 받는데 데이터가 깨져서 들어옵니다. 하두고 2213 2013/11/26
14866     Re:Autoit과 Delphi간의 메세지를 주고 받는데 데이터가 깨져서 들어옵니다. kylix 2162 2013/11/26
14869         Re:Re:Autoit과 Delphi간의 메세지를 주고 받는데 데이터가 깨져서 들어옵니다. 하두고 2084 2013/11/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.