C # процесс начала фокусировки - PullRequest
4 голосов
/ 21 декабря 2010


Когда я запускаю новый процесс, он автоматически получает фокус. как я могу предотвратить фокусировку или вернуть фокус на мое приложение?

вот код, который я использую:

string path = @"c:\temp\myprocess.exe";  
ProcessStartInfo info = new ProcessStartInfo(path);  
info.WorkingDirectory = path;  
Process p = Process.Start(info);  

Мне просто нужно выполнить процесс, чтобы не получить фокус.

Большое спасибо,
Ади Барда

Ответы [ 4 ]

5 голосов
/ 21 декабря 2010

Может быть, установка свойства WindowStyle на Свернутое значение может помочь.

4 голосов
/ 21 декабря 2010

Если вам вообще не нужно показывать процесс, попробуйте следующее:

string path = @"c:\temp\myprocess.exe";
ProcessStartInfo info = new ProcessStartInfo(path);
info.WorkingDirectory = path;
info.WindowStyle = ProcessWindowStyle.Hidden;

Или установите WindowStyle в ProcessWindowStyle.Minimized, если вы хотите, чтобы он был видимым, но свернут, как сказал Уве Кейм.

0 голосов
/ 01 июля 2015

Что я сделал, так это дождался небольшой задержки, пока другое приложение было успешно загружено, а затем сфокусировал окно моего приложения.

//Test window
const string strCmdText = "/C cd C:\\sqlcipher";
Process.Start("CMD.exe", strCmdText);

//Delay
int liMilliseconds = 50;
Thread.Sleep(liMilliseconds);

//Code to bring window to front
this.WindowState = FormWindowState.Minimized;
this.Show();
this.WindowState = FormWindowState.Normal;
0 голосов
/ 21 декабря 2010

вы можете сделать

myForm.Focus();

, где myForm - это форма вашего основного приложения

...