안녕하세요 어린 프로그래머 찌게다시이빈다.
온라인상이라... 좀 산만하더라도 참아주세요...
저도 에뮬레이터를 만든 경험이 있는데요...
저 같은 경우는 좀 특수 한목적을 위해서 그랬지만...
이렇게 했습니다... 그냥 참고 하세요...
저는 에물레이터의 헨들을 이용해서 모뎀의 특정한 위치에서 문자열을 가져오거나,
보내고 사용자가 정한 특정키 (이를테면 엔터키 등등..)를 보내어 에뮬레이터가 인식
하게끔 했스빈다.
에뮬레이터 내부적으로 이런 것을 인식 할 수 있겠끔 매개변수를 가진 함수를 만들고
특정 메세지를 받을 때마다 이들 함수를 동작 시켜 실제적인 에뮬레이터에 대한 엑션
(이를테면 문자열을 보낸다든지.. 문자열을 카피한다든지... 문자열 비교를 수행한다)든지..)
암튼... 이거 내가 말해놓고 이상하네요...
여기 그 소스를 조금 올립니다...
Procedure TTPowerEMU.WMCopyData(var M: TMessage);
var
ParameterInfo : lpParameterInfo;
begin
ParameterInfo := lpParameterInfo(M.LParam);
try
with ParameterInfo^ do
begin
case FunctionID^ of
1 : HSConnect(ParameterInfo);
2 : HSDisConnect(ParameterInfo);
3 : HSSendKey(ParameterInfo);
4 : HSWait(ParameterInfo);
5 : HSCopy(ParameterInfo);
7 : HSQueryCursorLoc(ParameterInfo);
8 : HSCopyPsToStr(ParameterInfo);
15: HSCopyStrToPs(ParameterInfo);
40: HSSetCursor(ParameterInfo);
end;
end;
except
;
end;
end;
첫번째 메개 변수를 실재로 엑션을 수행하게될 함수 번호가 넘겨져와서...
외부에서 메세지 형태로 에물레이터에 알리면 (이때 물론 파라미터에 대한 구조체
도 같이 넘겨저 오겠지요,, 함수 번호, 데이타, 데이타길이,, 등등)
]
위의 코드로 실재적인 함수처리가 일어 나게 되는 것입니다.
이건 개념 설명에 가깝군요...
음냐...
아무튼 좋은 코딩하게요...
어린 프로그래머 ----찌께다시-----
|