返回首页

HII ..
我想使事件得到应用程序的名称,只要用户运行任何应用程序。
到目前为止,我发现


public partial class Form1 : Form

    {

        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();

        }

 

        private void mgmtWtch_EventArrived(object sender, System.Management.EventArrivedEventArgs e)

        {

            MessageBox.Show((string)e.NewEvent["ProcessName"]);

        }       

    }


这个过程的名字,但我想要的应用程序名称...
有任何方式来获得该进程的名称......

感谢您的时间。

回答

评论会员:埃斯Harlinn 时间:2012/02/05
这里是一个C项目,解决您的问题:
{A}

您可以创建一个C / CLI项目的基础上的代码,或使用{A2}]访问所需的本地函数从C#

[更新]
{C}PROCESSENTRY32结构szExeFile成员并不总是包含完整路径。

所有的功能都记录在MSDN上{A3}

{A4纸}
{A5的}]从NTOSKRNL的出口,只提供给司机 - 文章引用上述解释如何可以得到通知,从您的驱动程序进程启动时,用户进程
显然,它更容易遵循Mikas的例子 - 只使用一个计时器,并执行它每10秒左右

最好的问候
埃斯Harlinn
评论会员:SAKryukov 时间:2012/02/05
这里是为什么你有这样的问题:一个任意的Windows应用程序,有没有"应用名称"等概念。你可以不学的东西不存在。

其实,这是。NET程序集名称和产品名称,如一些通常使用的属性,但他们没有一个是被称为"应用程序名称"。大会和应用程序是不同的东西。找到程序集属性,你应该载入和使用的思考。问题是:一些进程NET应用程序。

由于米卡已经解释,也有一个主应用程序窗口标题。它可能或可能不存在和mdash;麻烦再次mdash;这是不是"应用程序名称"。没有,你可以不学的东西不存在。

mdash;水杨酸
评论会员:米卡Wendelius 时间:2012/02/05
应用程序的名称,你的意思是一个窗口的主标题。如果是这样的话,和哟ualready认识的过程,你可以使用{A6的}

如果你只知道进程的ID,你可以使用{A7的}]解决P​​rocess对象