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

델파이 Q&A
Delphi Programming Q&A
[13360] 현재설정되있는 IME가져오는방법좀...
델파이초보개발자 [] 1604 읽음    2010-07-26 19:18
현재 설정되있는 IME 값 가져오는 방법좀 알켜주세요.,.

function TScreen.GetImes: TStrings;
const
  KbLayoutRegkeyFmt = 'System\CurrentControlSet\Control\Keyboard Layouts\%.8x';  // do not localize
  KbLayoutRegSubkey = 'layout text'; // do not localize
var
  TotalKbLayout, I, Bufsize: Integer;
  KbList: array[0..63] of HKL;
  qKey: HKey;
  ImeFileName: array [Byte] of Char;
  RegKey: array [0..63] of Char;
begin
    FImes := TStringList.Create;

    FDefaultIme := '';

    TotalKbLayout := GetKeyboardLayoutList(64, KbList);

    for I := 0 to TotalKbLayout - 1 do
    begin
      if Imm32IsIME(KbList[I]) then
      begin
        if RegOpenKeyEx(HKEY_LOCAL_MACHINE,
          StrFmt(RegKey, KbLayoutRegKeyFmt, [KbList[I]]), 0, KEY_READ,
          qKey) = ERROR_SUCCESS then
        try
          Bufsize := sizeof(ImeFileName);
          if RegQueryValueEx(qKey, KbLayoutRegSubKey, nil, nil,
               @ImeFileName, @Bufsize) = ERROR_SUCCESS then
          begin
            FImes.AddObject(ImeFileName, TObject(KbList[I]));
            if KbList[0] = FDefaultKbLayout then
              FDefaultIme := ImeFileName;

          end;
        finally
          RegCloseKey(qKey);
        end;
      end;

end;
    TStringList(FImes).Duplicates := dupIgnore;
  Result := FImes;
end;

현재이소스는 현재 설치 되있는 IME 리스트를 가져오는 코딩 입니다..
그런데 제가 해야되는건 현재 설정 되있는 IME값을 가져오는건데

고수분들 방법좀 알켜주세요~

+ -

관련 글 리스트
13360 현재설정되있는 IME가져오는방법좀... 델파이초보개발자 1604 2010/07/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.