Как к управляющему процессу / выполнение программы в окнах?

Я решил вызвать git cherry-pick с флагом --no-commit. Тогда я фиксирую явно с новым сообщением. В настоящее время я не вижу лучшего решения.

10
задан Niyaz 4 February 2009 в 08:32
поделиться

3 ответа

Самый легкий путь состоит в том, чтобы использовать WMI. Конкретно контролируйте Win32_ProcessStartTrace. Это лучше, чем Win32_Process, потому что это - установка для использования событий, тогда как Win32_Process требует опроса, который является большим количеством интенсивного ЦП. Ниже то, как сделать это в C#. Сначала удостоверьтесь та Система. Управление является установкой как ссылкой для Вашего проекта.

    public System.Management.ManagementEventWatcher mgmtWtch;

    public Form1()
    {
        InitializeComponent();
        mgmtWtch = new System.Management.ManagementEventWatcher("Select * From Win32_ProcessStartTrace");
        mgmtWtch.EventArrived += new System.Management.EventArrivedEventHandler(mgmtWtch_EventArrived);
        mgmtWtch.Start();
    }

    void mgmtWtch_EventArrived(object sender, System.Management.EventArrivedEventArgs e)
    {
        MessageBox.Show((string)e.NewEvent["ProcessName"]);
    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        mgmtWtch.Stop();
    }

Код генерирует messagebox каждый раз, Вы запускаете новый процесс. Оттуда можно проверить белый список/черный список и действие соответственно.

11
ответ дан 4 December 2019 в 01:03
поделиться

Я havn't пытался получить уведомление в реальном времени. Как когда-либо, Вот то, как получить рабочие процессы в C#

using System.Diagnostics;

 //Somewhere in your method

Process[] runningList = Process.GetProcesses();

foreach(Process p in runningList){
Console.WriteLine("Process: {0} ID: {1}", p.ProcessName, p.Id);
}

Можно также использовать следующие опоры процесса

  • StartTime - Показывает времени запущенный процесс
  • TotalProcessorTime - Показывает сумму процессорного времени, которое занял процесс
  • Потоки - предоставляют доступ к набору потоков в процессе
0
ответ дан 4 December 2019 в 01:03
поделиться

Я проверил бы API Win32 SetWindowsHookEx с постоянным WH_GETMESSAGE для добавления обратного вызова к программе, когда новое окно создается.

http://pinvoke.net/default.aspx/user32.SetWindowsHookEx

Google, что API и WH_GETMESSAGE для обнаружения больше.

Также проверьте следующие библиотеки статей/кода: http://www.vbaccelerator.com/home/Vb/Code/Libraries/Hooks/vbAccelerator_Hook_Library/article.asp

http://www.codeproject.com/KB/DLL/hooks.aspx?fid=2061&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=76&select=726975

0
ответ дан 4 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: