Я хочу, чтобы мое приложение работало в свернутом состоянии. Это приложение предназначено для обнаружения изменения языка компьютера .. Например, я меняю язык с английского sh на русский. Приложение обнаружит это. Но мое приложение не работает в свернутом состоянии или на панели задач. У меня есть код для отображения на панели задач. Есть ли какое-нибудь решение этой проблемы? Я хочу, чтобы приложение обнаруживало изменение языка (работающее), когда оно было свернуто на панели инструментов. Здесь у меня есть код для обнаружения изменения языка и минимизированного приложения на панели инструментов ..
private void HandleCurrentLanguage()
{
//CultureInfo.CurrentCulture.ClearCachedData();
//Thread.CurrentThread.CurrentCulture.ClearCachedData();
var newLayout = GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), IntPtr.Zero));
if (_currentKeyboardLayout != newLayout)
{
Thread.Sleep(100);
_currentKeyboardLayout = newLayout;
string show = System.Threading.Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;
// MessageBox.Show(show);
string current_language = InputLanguage.CurrentInputLanguage.Culture.Parent.DisplayName;
string current_layout = InputLanguage.CurrentInputLanguage.LayoutName;
var name = new StringBuilder(_currentKeyboardLayout.ToString());
var keyboardLayoutId = (UInt32)GetKeyboardLayout((UInt32)Thread.CurrentThread.ManagedThreadId);
var languageId = (UInt16)(keyboardLayoutId & 0xFFFF);
var keyboardId = (UInt16)(keyboardLayoutId >> 16);
if (button1.InvokeRequired)
{
button1.Invoke(new MethodInvoker(delegate
{
button1.PerformClick();
}));
}
//CultureInfo.CurrentCulture.ClearCachedData();
//Thread.CurrentThread.CurrentCulture.ClearCachedData();
}
}
// code for minimized application in toolbar
MenuItem exitMenuItem = new MenuItem("Exit", new EventHandler(Exit));
notifyIcon.Icon =SystemTray.Properties.Resources.system_tray;
notifyIcon.Click += new EventHandler(Open);
notifyIcon.ContextMenu = new ContextMenu(new MenuItem[] {
exitMenuItem });
notifyIcon.Visible = true;