행복을 찾아서 님이 쓰신 글 :
: 초급개발자 님이 쓰신 글 :
: : 안녕하세요 2년차 초급 개발자입니다..
: :
: : 현재 구현하고 싶은 내용은 소켓통신으로 받은 내용을 타 프로그램으로 넘겨주는 내용입니다.
: :
: : 메모장으로 테스트를 하고있는데 findwindow나 findwindowex를 사용하여
: :
: : ex) sendmessage(findwindow('notepad',nil),WM_CLOSE,0,0)
: :
: : 창을 닫거나 메세지 보내는 건 알겠는데..
: :
: : 메모장이 아닌 현재 활성화 되있는 외부 프로그램의 키보드 커서가 활성화 되있는 textbox에 데이터를 넘기려고 합니다.
: :
: : getactivewindow 나 getfocus로는 handle은 못가져오는거 같아 이렇게 도움을 요청합니다..
: :
: : 도움이 될만한 내용이라면 어느 내용이라도 좋습니다 고수님들의 한마디 답변 부탁드립니다.
: :
: :
:
: SPY++ 이용해보세요~ 특정핸들에 SendMessage 가능할겁니다.
자답입니다. 답변 감사드립니다.
function GetGlobalFocus: THandle; //핸들구하는함수
var
GUIThreadInfo: TGUIThreadInfo;
begin
GUIThreadInfo.cbSize := SizeOf(TGUIThreadInfo);
if GetGUIThreadInfo(0, GUIThreadInfo) then
Result := GUIThreadInfo.hwndFocus
else
Result := 0;
end;
procedure Tfm_Main.SocketRead(sender:TObject);
var
win:hwnd;
begin
win:=GetGlobalFocus;
SendMessage(win, WM_SETTEXT, 0, Integer(pChar('Msg')));
end;
|