블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2328)N
Unity3D (572)N
Programming (472)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (34)
3DS Max (3)
Game (12)
Utility (116)
Etc (92)
Link (31)
Portfolio (19)
Subject (90)
iOS,OSX (38)
Android (13)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (1)
Memories (19)
Interest (37)
Thinking (36)
한글 (26)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (2)
냥이 (9)
육아 (9)
Total1,346,355
Today6
Yesterday155
Statistics Graph

달력

« » 2019.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

공지사항

태그목록


한영 변환키 누름 상태는 윈도 메세지에서 WM_IME_NOTIFY 로 확인하는 방법과

WM_KEYUP 이나 WM_KEYDOWN 에서 wParam 에 VK_PROCESSKEY 가

들어오는것으로 확인 할 수 있다.

다만 키를 한번만 누르더라도 WM_IME_NOTIFY 로는 메세지가 여러개가 오는데,

그 중 wParam 이 IMN_SETCONVERSIONMODE 로 한번 오며 이것으로 채크하면 되겠다.

이 중 VK_PROCESSKEY 을 확인하는 방법으로 해 놓았었는데, 이것이 일부 노트북에서

동작하지 않는 것을 발견했다.

2개의 노트북에서 그런 현상이 발견되었으며 그 중 한대를 디버깅 해보았다.

한영키를 누를시 메세지에서 WM_KEYUP 이나 WM_KEYDOWN 은 넘어 오지 않고

WM_IME_NOTIFY 만 넘어오는 것이다.

이런 현상을 놓고 보았을때 WM_IME_NOTIFY 로 확인하는것이 맞겠다.

'Programming > Win32API' 카테고리의 다른 글

GetAsyncKeyState() 함수와 GetKeyState() 함수의 차이  (0) 2012.06.25
윈도우 투명  (0) 2011.10.30
한영키 누름 윈도우 메세지 확인 관련  (2) 2010.09.06
Keyboard 입력 받기  (0) 2010.09.03
IME 영문만 입력가능하게 하기  (0) 2010.09.03
IME  (0) 2010.09.02
Posted by blueasa
TAG API, 한영키

댓글을 달아 주세요

  1. 2010.09.09 20:54 지송  댓글주소  수정/삭제  댓글쓰기

    안녕하세요... 검색중에 지나갑니당.

    • 2010.09.10 13:21 신고 blueasa  댓글주소  수정/삭제

      안녕하세요~
      여기 지나가신거 보면 IME 관련 검색하시나봐요.
      잘되시길 바라요~
      전 C#에서 IME 수동조작할려고 일주일을 날렸네요 =ㅅ=;



CreateProcess
GetProcessAffinityMask( hProcess: Cardinal; var procAFMask, sysAFMask );
SetProcessAffinityMask( hprocess: Cardinal; ProcessAffinityMask: Cardinal );

'Etc' 카테고리의 다른 글

단축키로 윈도우 창 프로그램 숨기기 - 눈치코치  (0) 2010.09.02
How To Be A Programmer  (0) 2010.08.23
프로세스 선호도 관련 API 함수  (0) 2010.07.20
Metacognition  (0) 2010.07.13
창의성의 아이러니  (0) 2010.07.13
노래혼(Utatama) 삽입곡 Oh My Little Girl  (0) 2010.06.02
Posted by blueasa

댓글을 달아 주세요


윈도우에 열려있는 창을 제어하기 위한 핸들값을 가져오는 API 함수
창의 클래스명이나 캡션명은 Spy++ 로 알 수 있다.
※주의사항
함수명의 대소문자가 틀리면 안된다.
FindWindowEx() 함수를 FindWindowEX() 로 했더니 에러 발생.

[DllImport("user32.dll")]
public static extern int FindWindow(string lpClassName, string lpWindowName);
-> 창의 클래스명이나 창 캡션명으로 최상위 핸들값을 가져옴.
예)
int i = FindWindow(null, "Windows Messenger");  // 창의 캡션명으로 찾기
int j = FindWindow("MSBLClass", null);  // 창의 클래스명으로 찾기

[DllImport("user32.dll")]
public static extern int FindWindowEx(int hWnd1, int hWnd2, string lpsz1, string lpsz2);
-> 인자값으로 받은 핸들의 자식 핸들을 가져옴. lpsz1 은 클래스명, lpsz2 는 캡션명.
예)
int hw2 = FindWindowEx(hw1, 0, "PluginHostClass", null);  // PluginHostClass 의 핸들값 가져옴.
int hw3 = FindWindowEx(hw2, 0, "MSBLGeneric", null);  // MSBLGeneric 클래스의 핸들값.
int hw4 = FindWindowEx(hw3, 0, MSBLGeneric", "Task List");  // MSBLGeneric 클래스이며 Task List 캡션명의 핸들값. 
Posted by blueasa
TAG API, c#, 핸들

댓글을 달아 주세요