c # Развернуть окно из системного трея - PullRequest
0 голосов
/ 03 августа 2011

У меня возникают проблемы при попытке вывести окно моего приложения на передний план (т. Е. Поверх всех остальных окон).Я хочу, чтобы пользователь мог дважды щелкнуть notifyIcon в системном трее, и если приложение уже имеет открытое окно для его покупки на переднем плане.Я попытался использовать следующие два P / inovkes, но ни один из них не работает последовательно.Кто-нибудь знает, как вывести окно на переднюю / верхнюю часть?

[DllImport("user32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);

[DllImport("user32.dll")]
tatic extern bool SetForegroundWindow(IntPtr hWnd);

ShowWindowAsync(ADProcess.MainWindowHandle, SW_RESTORE);
SetForegroundWindow(ADProcess.MainWindowHandle);

1 Ответ

0 голосов
/ 03 августа 2011

Учитывая небольшую информацию, которую вы предоставили, я могу предположить, что у вас есть проблема с синхронизацией при вызове ShowWindowAsync, который выполняется асинхронно, за которым следует вызов SetForgroundWindow.

Вы пытались использовать ShowWindow, чтобы проверить, работает ли он правильно?

...