2016-02-09 3 views
2

Я использую C# (WPF)
У меня есть полный путь процесса, и я запускаю процесс с помощью команды Process.Start().
Начало процесса и показ C#

Process p = new Process(); 
p.shartInfo.FileName = fullPathOfFile; 
p.Start(); 

Теперь я хочу показать процесс, который я начала раньше (после Start() команды).

i.e если я запустил блокнот и пользователь скроет блокнот и нажмет на Start Notepad в моем приложении, я хочу проверить, если я запустил блокнот раньше, если это так, то покажите работающий блокнот пользователю.

if p is running: 
    Show p 
else 
    Start p 


, как я могу сделать это в C#?
Спасибо.

+0

Для упрощения: а) проверить, если процесс запущен уже и привести свое главное окно на передний план и б) если он не работает, запустите его. Это верно? У вас есть код целевого процесса? – Gusdor

ответ

1

Чтобы проверить, работает ли процесс со следующим именем, вы можете использовать метод Process.GetProcessesByName(processName).

В случае, если процесс запущен, вы можете максимизировать его окно, используя Pinvoke. Позвоните ShowWindow с SW_SHOWMAXIMIZED Параметр.

В противном случае вы можете просто позвонить Process.Start(processName), чтобы начать процесс. Попробуйте следующие

internal class MyClass 
{ 
    //use this flag to maximize process window. 
    const int SW_SHOWMAXIMIZED = 3; 
    //use this flag to open process window normally. 
    const int SW_SHOWNORMAL = 1; 

    [DllImport("user32.dll")] 
    static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); 

    public static void Main(string[] args) 
    { 
    var processName = "notepad"; 
    var process = Process.GetProcessesByName(processName).FirstOrDefault(); 
    if (process != null) 
     ShowWindow(process.MainWindowHandle, SW_SHOWNORMAL); 
    else 
     Process.Start(processName); 
    } 
} 
+0

Я могу показать приложение без увеличения окна? просто чтобы показать –

+1

@MikeBrown Да, вы можете, просто передайте '1' в качестве второго параметра функции ShowWindow. '1' соответствует знаку' SW_SHOWNORMAL'. – tchelidze

+0

Спасибо, его работа! .. :) –

Смежные вопросы