tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル他アプリケーションの文字入力モード変更
記事No9225
投稿日: 2009/07/30(Thu) 12:29
投稿者すすむ
VB2008のプログラムで、メモ帳なども他アプリケーションを開き、その文字入力モード(IMEモード)をVB側で変更する方法はないでしょうか?

[ツリー表示へ]
タイトルRe: 他アプリケーションの文字入力モード変更
記事No9228
投稿日: 2009/07/30(Thu) 15:45
投稿者花ちゃん
Win32 API 関数を使って、IME を制御して下さい。
ImmSetConversionStatus をキーに検索して見て下さい。

[ツリー表示へ]
タイトルRe^2: 他アプリケーションの文字入力モード変更
記事No9233
投稿日: 2009/07/30(Thu) 23:55
投稿者すすむ
返信ありがとうございます。
いろいろ調べてやってみて、
Declare Function ImmSetConversionStatus Lib "imm32.dll"(ByVal hIMC As Integer, ByVal fdwConversion As Integer, fdwSentence As Integer) As Integer
でIMEを制御するのは理解できました。
一つ目の引数のhIMCはImmGetContextで取得した値を使うとわかり、自アプリ内だときちんと値を取得でき、IME制御できました。
しかし他アプリはImmGetContextで値を取得できず、IME制御できませんでした。
何か方法はないでしょうか?

[ツリー表示へ]
タイトルRe^3: 他アプリケーションの文字入力モード変更
記事No9235
投稿日: 2009/07/31(Fri) 11:04
投稿者花ちゃん
他アプリでは、ImmGetContext でハンドルが取得できないようですね(XP/Vista 共)、
他に何か方法が或るのかも知れませんが?

最終的にどのような事がしたいのか(できればいいのか)によって代替案があるかも
知れません。

ごみレスをしてしまい申し訳ありませんでした。

[ツリー表示へ]