Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
다른 응용프로그램에 키다운 이벤트를 보내려합니다...
다른 응용프로그램에 키다운 이벤트를 보내려합니다...
예를 들어 내 프로그램에서 Word내에 키에 관한 이벤트를 발생시키고(엔터 또는 그외 다른키)
싶은데...방법이 에매...
sendmessage()를 처리하면 이벤트가 발생이 안되는것같구
keybd_event()는 어떻게 다른응용프로그램에 써먹는지 모르겠구...
여하튼 고수님들 갈켜주세용...
1
COMMENTS
한
•
2000.02.09 22:25
왕초(?) wrote:
> 다른 응용프로그램에 키다운 이벤트를 보내려합니다...
> 예를 들어 내 프로그램에서 Word내에 키에 관한 이벤트를 발생시키고(엔터 또는 그외 다른키)
> 싶은데...방법이 에매...
> sendmessage()를 처리하면 이벤트가 발생이 안되는것같구
> keybd_event()는 어떻게 다른응용프로그램에 써먹는지 모르겠구...
> 여하튼 고수님들 갈켜주세용...
>
먼저 다른 어플리케이션의 핸들을 알아야겠죠?
폼 핸들과 그 폼에 있는 메모나 dbrich의 핸들값을 또 알아야되고요.
제가 알기에는 sendmessage()로는 안되는걸로 알고요.
안해봐서 잘 모르지만,....ㅡ.ㅡ;
keybd_event()로 그 두 핸들을 다 지정해줘야됩니다.
SetForeGroundWindow([hwnd]);
음...그건 소스가 어디는지 잘 몰라서 찾아봐야되겠녜요...
하여튼 첫번째 방법은 그렇고
두번째 방법은
이벤트를 보낼 어플리케이션에서...
procedure TfrmMain2.btnMoveClick(Sender: TObject);
type
tData = Record
s: String[15];
end;
var DataStruct: TCopyDataStruct;
Data: TData;
h: hwnd;
begin
h := FindWindow('TfrmMain', nil);
If h = 0 then exit;
Data.s := 'test';
DataStruct.dwData := RegisterWindowMessage('SyncString');
DataStruct.cbData := SizeOf(TData);
DataStruct.lpData := @Data;
SendMessage(h, WM_COPYDATA, wParam(Application.Handle), lParam(@DataStruct));
end;
이벤트를 실행할 어플리케이션...
private
{ Private declarations }
procedure WndProc(var wpMessage: Tmessage); override;
public
procedure TfrmMain.WndProc(var wpMessage : Tmessage);
var tmp: String;
Data : TData;
begin
if (wpMessage.Msg = WM_CopyData) And
(PCopyDataStruct(wpMessage.lParam)^.dwData = f_my_Messagehandle)
then
begin
CopyMemory(@data, PCopyDataStruct(wpMessage.lParam)^.lpData, SizeOf(TData));
wpMessage.Result := 1;
tmp := data.s;
If tmp = [어떤 특정값이면] then 실행할 함수를 호출한다.
end
else inherited WndProc(wpMessage);
end;
위의 소스와 같이 현재 어플리케이션에서 어떤 조건에 의해 다른 어플리케이션의
이벤트를 실행시킬려면(말이 어렵나?)
어떤 특정값을 다른 어플리케이션에 보내는 것입니다.
그 값을 받은 다른 어플리케이션은 그 값을 비교해서 특정 이벤트를 실행시키면 되죠.
위의 소스를 참고하세요.
그럼 좋은 어플리케이션 만드세요.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
이성훈
2000.02.09 21:05
0
COMMENTS
/
0
LIKES
헥사값을 컴포트로 보내려고 하느데
초보
•
2000.02.09 21:00
2
COMMENTS
/
0
LIKES
dbrichedit의 용량
이재식
•
2000.02.09 21:07
초보 wrote: > 델파이 4부터 richedit 와 dbrichedit의 한계인 64K가 > 없어졌다고 하는데 프로그램을 만...
초보
•
2000.02.10 00:37
이재식 wrote: > 초보 wrote: > > 델파이 4부터 richedit 와 dbrichedit의 한계인 64K가 > > 없어졌다고...
한승구
•
2000.02.09 20:46
1
COMMENTS
/
0
LIKES
사운드 카드의 Line In 볼륨제어를 어떻게 해야하는지???
keisu
•
2000.02.10 11:12
고순 아니지만 답해줄 순 있습니다. 버튼을 4개 만드시고. Edit를 4개 만드신 후 아래 소스를 써보세요. ...
나그네
•
2000.02.09 20:42
1
COMMENTS
/
0
LIKES
하나의 실행화일
한
•
2000.02.09 23:05
나그네 wrote: > 델파이로 만든 실행화일을 델파이가 설치되어 있지 않은 > 컴퓨터에서 실행시켰더니 vcl...
이현우
2000.02.09 20:39
0
COMMENTS
/
0
LIKES
MDI와 OCX의 단축키 문제..
양동욱
•
2000.02.09 20:36
1
COMMENTS
/
0
LIKES
[급질문]파라독스 DB에서 Open된 Table을 강제로 접속을 끊을수 없나요?
한
•
2000.02.09 23:02
양동욱 wrote: > 안녕하십니까? > 다름이 아니라 또 문제가 생겨 이렇게 글을 올립니다. > 파라독스 테...
최재형
2000.02.09 20:30
0
COMMENTS
/
0
LIKES
분류먼저 해주시길 부탁드립니다.
양병호
2000.02.09 19:46
0
COMMENTS
/
0
LIKES
HTML소스를 불러 미리보기할수 있는 방법좀....
양동욱
2000.02.09 19:44
0
COMMENTS
/
0
LIKES
Table 생성/삭제시 에러에 대해서....
홍용희
•
2000.02.09 19:05
3
COMMENTS
/
0
LIKES
Varchar로 되어있는 필드의 내용을 dbmemo에 넣는방법좀가르쳐주세요..
이재식
•
2000.02.09 23:37
홍용희 wrote: > 또 질문을 올립니다. > 현재 dbmemo에 뿌리고자하는 원본 table의 필드 type이 vachar입...
홍용희
•
2000.02.10 00:21
현재 폼구성은 페이지 컨트롤 컴포넌트를 사용해서 첫페이지는 dbedit컴포넌트로 디자인했습니다. 물론 ...
홍용희
•
2000.02.10 06:52
안녕하세요. 자세히 가르쳐 주셔서 정말감사합니다. 근데 한가지 이해가 잘 안가는 부분이 있어서 다시 질...
델초
•
2000.02.09 18:00
1
COMMENTS
/
0
LIKES
BDE와 DB CONNECT!!!
한
•
2000.02.09 22:03
델초 wrote: > 안녕하세요. 델파이초보입니다. > > 궁금한게 있는데요. 해결해 주세요. > > 1. 첫번...
초짜
2000.02.09 15:18
0
COMMENTS
/
0
LIKES
고수님들 도와주세요...-.-(마우스 이벤트에 대한 질문)
왕초(?)
•
•
2000.02.09 11:52
1
COMMENTS
/
1
LIKES
다른 응용프로그램에 키다운 이벤트를 보내려합니다...
다른 응용프로그램에 키다운 이벤트를 보내려합니다... 예를 들어 내 프로그램에서 Word내에 키에 관한 이벤트를 발생시키고(엔터 또는 그외 다른키) 싶은데...방법이 에매... sendmessage()를 처리하면 이벤트가 발생이 안되는것같구 key...
한
•
2000.02.09 22:25
왕초(?) wrote: > 다른 응용프로그램에 키다운 이벤트를 보내려합니다... > 예를 들어 내 프로그램에서 W...
정진수
2000.02.09 09:51
0
COMMENTS
/
0
LIKES
DLL폼에서 Hint표시할때 Err..
keisu
2000.02.09 09:45
0
COMMENTS
/
0
LIKES
리스트박스에서...
keisu
2000.02.09 09:41
0
COMMENTS
/
0
LIKES
폼이 비활성화 되었을때도 스피드버튼에 힌트가 나오거 하려면
김정선
•
2000.02.09 09:27
1
COMMENTS
/
0
LIKES
[급질문] crystal report number reset에 대해
한
•
2000.02.09 22:37
김정선 wrote: > : > > > 안녕하세요..많은 도움을 받고 있는 > 사람입니다. > 현재 시...
임한섭
2000.02.09 08:34
0
COMMENTS
/
0
LIKES
한번만 실행시킬려면요...??
민들머리
•
2000.02.09 08:18
2
COMMENTS
/
0
LIKES
판넬에 좌측버튼클릭시 팝업메뉴가 그위치에서 생성
한
•
2000.02.09 22:41
민들머리 wrote: > 해보려 하지 잘 되질 않는군요 > 전 팝업메뉴를 상당히 활용하고 싶은 일이 있어서 그...
kingdol
•
2000.02.09 21:23
민들머리 wrote: > 해보려 하지 잘 되질 않는군요 > 전 팝업메뉴를 상당히 활용하고 싶은 일이 있어서 그...
델초
2000.02.09 08:10
0
COMMENTS
/
0
LIKES
그림을 리스트뷰에 빨리 넣는 법?.....
왕초(?)
2000/02/09 11:52
Views
454
Likes
1
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 다른 응용프로그램에 키다운 이벤트를 보내려합니다...
> 예를 들어 내 프로그램에서 Word내에 키에 관한 이벤트를 발생시키고(엔터 또는 그외 다른키)
> 싶은데...방법이 에매...
> sendmessage()를 처리하면 이벤트가 발생이 안되는것같구
> keybd_event()는 어떻게 다른응용프로그램에 써먹는지 모르겠구...
> 여하튼 고수님들 갈켜주세용...
>
먼저 다른 어플리케이션의 핸들을 알아야겠죠?
폼 핸들과 그 폼에 있는 메모나 dbrich의 핸들값을 또 알아야되고요.
제가 알기에는 sendmessage()로는 안되는걸로 알고요.
안해봐서 잘 모르지만,....ㅡ.ㅡ;
keybd_event()로 그 두 핸들을 다 지정해줘야됩니다.
SetForeGroundWindow([hwnd]);
음...그건 소스가 어디는지 잘 몰라서 찾아봐야되겠녜요...
하여튼 첫번째 방법은 그렇고
두번째 방법은
이벤트를 보낼 어플리케이션에서...
procedure TfrmMain2.btnMoveClick(Sender: TObject);
type
tData = Record
s: String[15];
end;
var DataStruct: TCopyDataStruct;
Data: TData;
h: hwnd;
begin
h := FindWindow('TfrmMain', nil);
If h = 0 then exit;
Data.s := 'test';
DataStruct.dwData := RegisterWindowMessage('SyncString');
DataStruct.cbData := SizeOf(TData);
DataStruct.lpData := @Data;
SendMessage(h, WM_COPYDATA, wParam(Application.Handle), lParam(@DataStruct));
end;
이벤트를 실행할 어플리케이션...
private
{ Private declarations }
procedure WndProc(var wpMessage: Tmessage); override;
public
procedure TfrmMain.WndProc(var wpMessage : Tmessage);
var tmp: String;
Data : TData;
begin
if (wpMessage.Msg = WM_CopyData) And
(PCopyDataStruct(wpMessage.lParam)^.dwData = f_my_Messagehandle)
then
begin
CopyMemory(@data, PCopyDataStruct(wpMessage.lParam)^.lpData, SizeOf(TData));
wpMessage.Result := 1;
tmp := data.s;
If tmp = [어떤 특정값이면] then 실행할 함수를 호출한다.
end
else inherited WndProc(wpMessage);
end;
위의 소스와 같이 현재 어플리케이션에서 어떤 조건에 의해 다른 어플리케이션의
이벤트를 실행시킬려면(말이 어렵나?)
어떤 특정값을 다른 어플리케이션에 보내는 것입니다.
그 값을 받은 다른 어플리케이션은 그 값을 비교해서 특정 이벤트를 실행시키면 되죠.
위의 소스를 참고하세요.
그럼 좋은 어플리케이션 만드세요.