Я пытаюсь убедиться, что мое окно WPF остается открытым, пока оно открыто. Он действует как всплывающее окно с TopMost = true и вызовом win32 SetWindowPos для TOPMOST. При первом открытии оно отображается поверх другого запущенного приложения на рабочем столе - развернуто или нет.
Если пользователь активирует или использует окно в моем приложении, оно теряет фокус и исчезает.
Я думал о том, чтобы манипулировать другим окном приложения, установить для него более низкий индекс z. Как мне найти окно приложения? Как мне перебрать все окна? (Этот вопрос остается в силе, даже если это неправильный подход).
Я бы использовал SetWindowPos, GetForegroundWindow, GetForegroundWindow, GetDesktopWindow и так далее.
Я подозреваю, что как только пользователь нажмет на свое приложение, оно все равно будет фокусироваться, и я лаю не на том дереве.
В настоящее время мое приложение является черным ящиком, и я не могу справиться с ним иначе, например, периодически отправлять мое приложение для фокусировки.
Я также думал о том, чтобы иметь длительный фоновый поток, который периодически фокусирует мое всплывающее окно WPF, но мне нужно следить за ресурсами и процессором.
С уважением,