|
창조 팁 - '창조' 에 관한 팁을 올리는 곳입니다. 다수의 이미지가 필요하시면 아래 '이미지 자료실' 에 업로드 후 불러와 주세요.. |
| Posted by 지상현 | 2006-07-11 00:28:08, Hit : 6573 | |
|
|
|
적용 DLL 라이브러리 목적 DLL에서 창조 프로그램으로 간단한 신호를 보내, 사건처럼 사용할 수 있게 한다. 장점 창조에서 제공하는 사건에서 바로 받아 처리할 수 있기 때문에 사용하기 편리하다. 단점 간단한 숫자 코드밖에 보낼 수 없다.
DLL에서 사용법 DLL에서는 다음과 같은 방법으로 창조로 신호를 보낼 수 있다. 아래 함수를 이용하면 편리하다. 신호로 보낼 수 있는 숫자 코드는 130~254 의 범위를 갖는다.
[C++]
void SendSignal(HWND hWnd, DWORD dwUserCode) { SendMessage(hWnd, WM_CHAR, 0x81, 0x01000000); SendMessage(hWnd, WM_CHAR, dwUserCode, 0x01000000); } |
[Delphi]
{ Windows, Messages 유닛 필요 } procedure SendSignal(hWnd: HWND; UserCode: Cardinal); begin SendMessage(hWnd, WM_CHAR, $81, $01000000); SendMessage(hWnd, WM_CHAR, UserCode, $01000000); end; |
이제, 창조로 신호를 보내야 할 필요가 있을 때(예를 들어 이벤트가 발생했다든지), 이 함수를 호출하면 된다.
hWnd - 보내고 싶은 창조의 창 핸들이다. UserCode - 보내고 싶은 코드이다. 130~254 범위 안에서 보내야 한다.
창조에서 사용법 창조에서는 다음과 같은 방법으로 신호를 받는다. 신호를 보내면, 창에서는 "자판을 눌렀을 때" 사건이 발생한다. 다음과 같은 방법으로 처리할 수 있다.
// 자판을 눌렀을 때 만일 (_키 = 170) { 문자창보여("신호를 받았습니다!"); } |
여기서 170 이란 숫자는, 신호를 보내기로 되어 있는 DLL과 함께 미리 정해준 것이다. DLL에서 170 이란 코드로 신호를 보내기 때문에, 창조에서는 170 인 코드만 처리하면 된다.
이런 식으로 상당히 깔끔하게 신호를 줄 수 있다.
응용 이 방법으로는 숫자 하나밖에 주지 못하지만, 더 주고 싶은 데이터를 DLL이 가지고 있다가, DLL 함수에 마지막 이벤트의 결과를 얻는 함수를 만들어 넣고 창조에서 그것을 호출해 결과를 받도록 하면 충분히 다른 데이터도 보낼 수 있다.
우려 창에서 자판을 눌러도 이 사건이 발생한다. => "자판을 눌렀을 때" 사건은 항상 아스키 영역에서만 발생한다. 즉, 적어도 자판을 눌러서 이 사건이 발생하면 항상 _키의 값이 128보다 작은 숫자가 나온다. 한글 모드에서 자판을 누르면 128보다 큰 수가 잡힌다. => 가능성이 있다. 한글을 입력하면, 한글 2 바이트가 두 개로 쪼개져서 사건이 2번 발생한다. 단, 이 문제를 해결하기 위해 항상 신호를 보내기 전에 129 번 코드를 보낸다. 그러므로 129 번 바로 다음에 오는 코드는 DLL에서 보낸 코드라고 확신할 수 있다. 한글이나 기타 다른 문자를 입력했을 때, 129로 시작하는 문자 코드는 없다.
작성 날짜 2006년 7월 11일 화요일 12시에 처음으로 작성함. |
|
|
박종훈 2006-07-11 PM 6:11:25 |
|
|
|
창조 클립보드 DLL에 쓰인 방법이군요 ^^
음.. 메시지를 DLL에서 잡아서, 해주면 좋은데..
메시지를 잡는 부분을 봐서, 해봐도, 성공은 했긴 했는데, 다시 해보니 안되던;
창조의 발전을 위해 우리모두 힘을 ^^ |
|
|
지우개 Expert 3.0 제작자 : 천호성 님 [LINK] |
|
|
|
대박로또2005 제작자 : 최재일 님 [LINK] |
|
|
1 | 박종훈 님 | 15292 점 | |
2 | 지상현 님 | 8809 점 | |
3 | 손상진 님 | 7388 점 | |
4 | 권선중 님 | 6060 점 | |
5 | 이진백 님 | 5174 점 | |
|
|
|
가입일 | 닉네임 |
05/31 | 김동률 |
03/31 | 홍형기 |
09/01 | o00pp99oo |
12/27 | 이재민 |
11/20 | 이희철 |
|
|
|
|
. |
. |
. |
|