Как установить окно переднего плана, если SetForegroundWindow и ShowWindowAsync не работают? - PullRequest
1 голос
/ 12 апреля 2009

Это приложение c # winform. Я установил для свойства ShowInTaskbar значение false, потому что я не хочу, чтобы программа отображалась на панели задач, но подобные SetForegroundWindow или ShowWindowAsync не работают.

1 Ответ

7 голосов
/ 12 апреля 2009

Рэймонд Чен объясняет, что управляет правилами в Windows вокруг активации на переднем плане, в своей классической статье Разрешение на активацию на переднем плане похоже на любовь: его нельзя украсть, оно должно быть дано вам . Грубо говоря, вы не можете украсть активацию переднего плана с помощью вызова типа SetForegroundWindow, вам нужно дать его от процесса, который уже имеет активацию переднего плана.

В вашем случае, когда вы показываете в панели задач набор, панель задач может дать вашему приложению активацию переднего плана, потому что когда вы нажимаете на значок панели задач для своего окна, это (кратко) даст активацию панели задач. , Если у вас нет активации, показанной на панели задач, вам нужно найти способ, чтобы приложение, которое действительно дает ее вам. Один из явно разрешенных способов - использовать значок окна уведомлений (трей).

...