C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: IME状態の取得


(過去ログ 61 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■35071 / inTopicNo.1)  IME状態の取得
  
□投稿者/ hirosi (5回)-(2009/04/19(Sun) 15:08:49)

分類:[C#] 

度々お世話になります。

OS:Windows Vista
開発言語:C#2008 Express

IME状態の取得がうまくいかず困っています。
ネットで調べて以下のソースにたどり着いたのですが、なぜエラーとなってしまうのか原因が分かりません。

ご存知の方、よろしくお願いいたします。

■エラー内容

System.DllNotFoundException が発生しました。
Message="DLL 'CoreDll.DLL' を読み込めません: 指定されたモジュールが見つかりません。 (HRESULT からの例外: 0x8007007E)"


■ソース
public static class Ime {
[DllImport("CoreDll.DLL")]
private extern static int ImmGetOpenStatus(IntPtr hIMC);
[DllImport("CoreDll.DLL")]
private extern static int ImmSetOpenStatus(IntPtr hMMC, int fOpen);

public static bool IsOpen() {
return ImmGetOpenStatus(IntPtr.Zero) != 0;
}
}


引用返信 編集キー/
■35072 / inTopicNo.2)  Re[1]: IME状態の取得
□投稿者/ Hongliang (364回)-(2009/04/19(Sun) 15:38:50)
どこを参照したのか知りませんが、coredll.dll は WindowsCE で使用される DLL ですね。
引用返信 編集キー/
■35075 / inTopicNo.3)  Re[2]: IME状態の取得
□投稿者/ やじゅ (976回)-(2009/04/19(Sun) 19:05:18)
やじゅ さんの Web サイト
Imm32.dll ですね。
引用返信 編集キー/
■35085 / inTopicNo.4)  Re[3]: IME状態の取得
□投稿者/ hirosi (6回)-(2009/04/20(Mon) 02:01:44)
No35075 (やじゅ さん) に返信
> Imm32.dll ですね。

Hongliangさん、やじゅさん コメントありがとうございます。

まさかWindowsCEのサンプルだったとは気づきませんでした。(ーー;)
Imm32.dllを使用して、ImmGetContext でハンドルを取得するとうまく動作しました。

ありがとうございました。

-------------------------------------
public static bool IsOpen(IntPtr handle) {
IntPtr ime = ImmGetContext(handle);
if(ime != IntPtr.Zero) {
return ImmGetOpenStatus(ime) != 0;
}
return false;
}
-------------------------------------

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -