【发布时间】:2011-03-06 16:00:23
【问题描述】:
基本上我想编写一个将当前语言显示为托盘图标的应用程序。主要是我可以编写 C++ 和 C#。猜猜谷歌会帮助我,但我想先在这里问一下,因为社区,这里的知识是我信任的。
(到目前为止,从未与系统的这些部分发生过争执。这就是我想向社区询问的原因。)
好的,感谢您的帮助,我设法找到了两种方法。在 C# 中使用DllImport(导入user32.dll)和InputLanguage。
找到一个sn-p:
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;
如果您将其悬停在图标上方,则会显示它。但是,它不会在切换时更新,也不会在托盘区域中将布局显示为文本。为此,我找到了一篇“Drawing in VB.NET”文章,也许这会帮助我解决这个问题。关于开关检测,这是个好问题。
【问题讨论】:
-
好的,如果有人给出“-1”,请考虑告诉我如何改进这个问题。这个问题也困扰着其他人。谢谢。
-
你先google一下试试写这样一个程序怎么样,当你遇到无法解决的特定问题时,请在这里提问。
-
因为通常谷歌上的答案都是由不知名的人写的。我想从值得信赖的人那里获得“开始帮助”,谁可以编码,谁知道他在做什么。 (无论如何,我猜我的 Google-fu 越来越差了,因为我在那里找不到解决方案。)
-
什么操作系统?另外,整体 UI 语言或特定线程的语言或键盘输入语言?
-
那只会让你看起来很懒惰。您一定已经找到了一些关于 API 等的信息才能使用吗?一些相关的示例代码?您发现并尝试了什么?
标签: c# c++ windows windows-7 keyboard-layout