Проверьте, запущен ли процесс.если это так - откройте его - PullRequest
0 голосов
/ 23 августа 2011

Ну, допустим, я запустил process.

Допустим, "Skype".И я хочу нажать на button в C # Windows Form App.

Когда я нажимаю button (Давайте назовем button «Skype Run»).

Итак, когда я нажимаю «Skype Run».Он проверит, запущен ли процесс в данный момент.

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

MessageBox.Show("Sorry! Skype is not running.")

Но.Если он работает, он откроет его, чтобы быть окном, которое вы смотрите в данный момент.

Итак, если вы находитесь в Word, и вы нажимаете «Skype Run».И Skype работает, и он открывает окно вверх.(Точно так же, как сделать «Переключиться на» в диспетчере задач в Windows.)

Если я не очень хорошо объяснил свой вопрос, пожалуйста, сообщите мне.Мне просто очень нужен ответ:)

Ответы [ 2 ]

3 голосов
/ 23 августа 2011

Здесь приведен пример кода, который показывает, как это сделать:

http://www.codeguru.com/forum/showthread.php?p=1757526

Соответствующий пример кода из этого поста ниже.Здесь показано, как найти процесс в обработчике события button1_Click.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices; //required for APIs
namespace Find

{

public partial class Form1 : Form
{
    //Import the FindWindow API to find our window
    [DllImportAttribute("User32.dll")]
    private static extern int FindWindow(String ClassName, String WindowName);

    //Import the SetForeground API to activate it
    [DllImportAttribute("User32.dll")]
    private static extern IntPtr SetForegroundWindow(int hWnd);


    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        //Find the window, using the CORRECT Window Title, for example, Notepad
        int hWnd = FindWindow(null, "Untitled - Notepad");
        if (hWnd > 0) //If found
        {
            SetForegroundWindow(hWnd); //Activate it
        }
        else
        {
            MessageBox.Show("Window Not Found!");
        }


    }
}
}
1 голос
/ 23 августа 2011

Вы можете проверить, запущен ли уже процесс, используя статический метод Process.GetProcessesByName.

Вывести определенное окно на передний план можно с помощью SetWindowPos Win API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...