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

컴포넌트/라이브러리
Delphi/C++Builder Programming Components&Libraries
[779] 한글가상키보드_현재 Application 안에서...
박영목.월천 [gsbsoft] 31629 읽음    2011-07-18 02:24
로크님의

void __fastcall TfrmKeyboard::ApplicationEvents1Message(tagMSG &Msg,
      bool &Handled)
{
    if ( Msg.message == WM_KEYUP && Msg.wParam == 0x00e5 )
    {
      Handled = true;
    }
}

이용해서... 제 프로그램에 들어갈 것 만들어 보았습니다. 조금 더 손보면 좋을 것 같습니다. 이미지 반전 된 상태로 있기 등을 추가하면... 게을러 미루고 해서... 아직...  이것은 별것 아니니... 기능은 충분해 보입니다.

원래 의도도 이것까지였는 데... 가만 생각하니 내가 만들지 않은 프로그램 하나를 시스템에 하나 추가해서 출고하기로 했습니다. RAdmin 원격제어 프로그램... 그런데 이것 환경설정 부분을 터치로 입력하게 해 주어야 할 것인데.. 뭐 없으도 처음에 키보드로 설정해 주고 원격에서 값을 바꾸라고 하면 되지만.. 그래도 좀 찜찜해서... 전역으로 해서... 윈도우에 기본으로 있는 화상키보드처럼 동작하지 않을까? 조금 테스트 해보니... 생각보다... 여러 문제가 많군요... 첫번째  ApplicationEvents1Message 이 놈을 전역으로 잡아 제거해야 한다는 것.. 키보드 HOOK을 전역으로 걸어서 해도 안통하고... 어디서 어떻게 해야 하는지... 하루 정도 하다가 ... 땡... 해버렸습니다. 언젠가는 전역으로 하는 것을 만들어 두어야 할 것 같은 데... 이 방식이 안되면 다른 방법이라도...찾아야 할 것 같습니다. 이것도 영어만 한다면 그냥 약간만 더 바꾸면 되는 데...   한글 때문에... 이런 것 때문에.. 시간 빼기는 것이 아깝군요...  프로그램이 원래 쓸데없는 것까지 신경을 쓰야 한다는 것... 사용자가 어떤 짓을 할지 모르기 때문에.... 참 특이한 사용자 많음 생각보다 ㅋㅋㅋㅋ

혹 다른 곳에 이것 사용하고 싶으시면 사용하시기 바랍니다. 디자인 좀 그런가요?   ㅋㅋㅋ 

소스, 실행파일 올렸습니다.

그럼...                       부산에서 월천 올렸습니다.
망치 [mangchy]   2011-07-18 15:21 X
멋진데요...^^&
박영목.월천 [gsbsoft]   2011-07-18 18:38 X
망치님 감사요^^... 더운데... 건강하세요....
방태윤 [nabty]   2011-07-19 21:54 X
키보드 모양 좋으네요.^^
FormCreate 에 SetWindowLong(Handle,GWL_EXSTYLE,WS_EX_NOACTIVATE);
하면, 다른 app 에도 값을 입력시킬수 있을것 같습니다....
박영목.월천 [gsbsoft]   2011-07-19 22:10 X
태윤님 감사...

void __fastcall TfrmKeyboard::CreateParams(TCreateParams &Params)
{
    TForm::CreateParams(Params);
    Params.ExStyle = Params.ExStyle | WS_EX_NOACTIVATE;  //WS_EX_TRANSPARENT;
}

위 처럼 하는 것이 더 좋을 것 같지요...

그런데 안돼요... 제가 하루 전역으로 하려고 몇번 시도한 것 중에 하나입니다. 물론 영어는 됩니다... ^^
방태윤 [nabty]   2011-07-20 09:47 X
박영목님 올려주신 소스로 태스트 해봤는대요...영어,한글 상관없이 되는데요..? 
빌더 2009 로 했구요...
박영목.월천 [gsbsoft]   2011-07-20 13:21 X
원더풀!  저는 안됩니다.CB 6.0 이구요 XP입니다. 글 입력하면 ㄱ ㅏ 이런씩으로 됩니다. 2009에서는 어떻게 되지요...
소스 다른 부분 추가된 부분은 없습니까?소스와 실행파일 저에게 보내 주시면 감사하겠습니다. 실행파일은 Release로 Link하셔서... 2009가 없기 때문에... 제가 이렇게 올린 것도 전역으로 방법을 찾기 위해 여러 사람의 댓글을 기다리고 있었습니다. 말을 주고 받다보면 답이 나오는 경우가 많기 때문에... ㅋㅋㅋ  정말 이게 된다면 이것만 2009에서 만들어 넣으면 될 것 같습니다. 시간은 없지요... 마음은 급하고 그래서 하루 TEST하고 말았는 데... 이렇게 간단히 가능하다니... ㅋㅋㅋ  급하게 부탁드립니다.
이쪽에 올리셔도 되고... gsbsoft@naver.com 으로 보내 주셔도 됩니다. 감사합니다.
방태윤 [nabty]   2011-07-20 23:44 X
WS_EX_NOACTIVATE 넣으면 , 다른 app 입력창에 한글,영어 입력되는  건 잘 됩니다.
근데 자기 app 에서는 안되네요,.. 박영목님이 올려주신 Project1.exe 로는 자기 app 에서 되는데.
2009 으로 컴파일한거는 자기 app 에서 ㄱ ㅏ 형식으로 찍히네요.
WS_EX_NOACTIVATE 넣든 안넣든 상관없이 그렇습니다,
컴파일은, 2009가 gif 부분이 달라서 그 부분은 빼고,컴파일했고요...(그냥 Keyboard9.bmp 로 바꾸어서 태스트했어요)
전 다른 app 에 입력하는거만 해봐서,,,다른부분은 잘모르겠습니다.
가상키보드 실행화일 만들어서 createprocess 로 사용했거든요,
그럼 수고하세요,
박영목.월천 [gsbsoft]   2011-07-21 00:47 X
댓글이 달려서 혹 메일로 왔나 싶어 가보았더니.. -.-  없네요...  쩝....   저도 처음에 bmp로 헀는 데 실행파일 크서 gif로 바꾼 것입니다. 그것은 별 의미없고 그냥 2009로 실행파일 만들어 그냥 실행하는 것하고 createprocess로 실행하는 것이랑 차이가 있나요... 그냥 해도 잘 된다는 말씀으로 들리는 데...  실험해 보고 싶습니다. 실행파일만 보내 주세요... 너무나 궁금합니다.  감사합니다.
방태윤 [nabty]   2011-07-21 01:19 X
실행화일 메일로 보냈습니다.^^.
박영목.월천 [gsbsoft]   2011-07-21 01:43 X
감사합니다 ^^
박영목.월천 [gsbsoft]   2011-07-21 01:51 X
와우! ㅋㅋㅋ ㅎㅎㅎㅎ  정말  됩니다. 이것이 안되어 하루를 보냈는 데... 컴파일러를 바꾸는 데 되는 군요.... 관계없습니다.
그런데 2009를 구해서 일반적인 용도로 사용하는 것을 아주 멋지게 만들어야 겠습니다. 월요일 납품인데... 이것 시간이 없네요... 저 부분은 다음에 해줘야 할 것 같습니다.2009도 좀 사용해 보고 CB60보다 제 용도에 더 적합하면 구매를 해야겠습니다.
다시 한번 감사드립니다. 전역 화상 키보드가 이렇게 쉽게 될 줄은 상상도 못했습니다 ^^
pwrlove [pwrlove]   2014-04-28 14:35 X
BCB 2009에서 한글이 잘 안되던데, 어떻게 해결을 하셨나요?
요긴하게 쓰일것 같아서 빌드해 봤는데...

+ -

관련 글 리스트
779 한글가상키보드_현재 Application 안에서... 박영목.월천 31629 2011/07/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.