@kalapanga

Почему под Windows 10 форма не выводится поверх всех окон?

Есть программа на Delphi XE8, висящая в области уведомлений и при определённых событиях показывающая окно с информацией. Под Windows 7 следующий код обеспечивал показ формы поверх всех окон практически на 100%.
with TfrmInfo.Create(self) do
begin
  Show;
  Application.NormalizeTopMosts;
  SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0,
    SWP_NOACTIVATE + SWP_NOMOVE + SWP_NOSIZE);
end;

И этот код перестал срабатывать под Windows 10. Точнее, иногда окно появляется поверх всех, но гораздо чаще оказывается наоборот в самом "низу", под всеми окнами. Может кто сталкивался с таким? И как это попробовать полечить?
  • Вопрос задан
  • 387 просмотров
Решения вопроса 1
@kalapanga Автор вопроса
"Виновником" оказалась строка с Application.NormalizeTopMosts. Я её в своё время без особых раздумий по какому-то примеру в код вставил. И под семёркой она по крайней мере не мешала. А вот под десяткой получил проблему. Просто убрал эту строку - и всё заработало!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AlexZaharow
@AlexZaharow
Программист.
Не подскажу за дельфи, но для C# есть решение:

stackoverflow.com/questions/10740346/setforeground...

Пользуюсь им, работает уже в 99.9999% (при разработке ещё подглючивало, но вот уже несколько месяцев работает на 100%). В основном работаю на 8.1, но на домашней windows 10 глюков с этим методом не было.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Золотое Яблоко Екатеринбург
До 70 000 ₽
MSP360 Санкт-Петербург
от 60 000 до 80 000 ₽
MSP360 Санкт-Петербург
от 70 000 до 110 000 ₽