基本上我想编写一个将当前语言显示为托盘图标的应用程序。主要是我可以编写 C++ 和 C#。猜猜谷歌会帮助我,但我想先在这里问一下,因为社区,这里的知识是我信任的。
(到目前为止,从未与系统的这些部分发生过争执。这就是为什么我想问社区的原因。)
好的,感谢您的帮助,我设法发现了两种方法。在 C# 中使用DllImport
(导入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 中绘图”的文章,也许这会帮助我解决这个问题。关于开关检测,这是一个很好的问题。