2012-03-12 8 views
0

Я бы хотел, чтобы мое приложение запускало другое (стороннее) приложение, но не придавало ему фокуса. Стороннее приложение представляет собой графическое приложение, поэтому оно будет создавать окна и т. Д. - и это нормально, я хочу их, но мое приложение все равно останется на переднем плане, пока пользователь не отключится вручную.Могу ли я запустить приложение из .NET, но не дать ему фокус?

(Как) могу ли я это сделать?

Я использую Windows 7, и я пишу свое приложение в VS2010, C# 4.0.

ответ

0

После открытия третьего лица вы можете вернуть текущую форму на передний план.

private void OpenThirdParty 
{ 
.... 

this.Show(); 
} 

или, тем не менее, вы можете получить доступ к текущей форме.

+0

У меня нет контроля над сторонним приложением. Кроме того, я знаю, как это можно свести к минимуму, но я этого не хочу. Я хочу, чтобы окна GUI появлялись, просто не получайте «приоритетную любовь», как ее иногда называют. –

+0

@ Попробуйте что-то вроде изменения, которое я сделал. –

+0

Я могу попробовать, но я думаю, что это очень неустойчивое решение. Из-за многопоточности (и у меня есть 8 виртуальных ядер процессора) нет никакой гарантии, что приложение (мое или третье лицо) получит возможность сначала вызвать «Show()». На самом деле это скорее всего мое, потому что другому приложению все равно придется загружать все необходимые библиотеки, выполнять инициализацию и т. Д., В то время как у меня есть это как следующая инструкция сразу после запуска другого приложения. –