基本的に、現在の言語をトレイ アイコンとして表示するアプリケーションを作成したいと考えています。主に C++ と C# をコーディングできます。Google が私を助けてくれると思いますが、最初にここで質問したいと思います。コミュニティなので、ここでの知識は私が信頼しているものです。
(これまで、システムのそのような部分について議論したことはありません。そのため、コミュニティに質問したいと思います。)
あなたの助けのおかげで、私は2つの方法を発見することができました. DllImport
C# でを使用する( をインポートするuser32.dll
) およびInputLanguage
.
スニペットを見つけました:
public void SetNewCurrentLanguage() {
// Gets the default, and current languages.
InputLanguage myDefaultLanguage = InputLanguage.DefaultInputLanguage;
InputLanguage myCurrentLanguage = InputLanguage.CurrentInputLanguage;
textBox1.Text = "Current input language is: " + myCurrentLanguage.Culture.EnglishName + '\n';
textBox1.Text += "Default input language is: " + myDefaultLanguage.Culture.EnglishName + '\n';
// Changes the current input language to the default, and prints the new current language.
InputLanguage.CurrentInputLanguage = myDefaultLanguage;
textBox1.Text += "Current input language is now: " + myDefaultLanguage.Culture.EnglishName;
}
これを次のように適用しました。
InputLanguage myCurrentLanguage = InputLanguage.CurrentInputLanguage;
notifyIcon.Text = myCurrentLanguage.LayoutName + '\n' + myCurrentLanguage.Culture.DisplayName;
アイコンの上にカーソルを合わせると表示されます。ただし、スイッチでは更新されず、レイアウトがトレイ領域にテキストとして表示されません。そのために、「VB.NETでの描画」記事を見つけました。これは、この問題の解決に役立つかもしれません。スイッチ検出について、それは良い質問です。