C#的关闭程序问题

Process T = Process.Start("C:\\Users\\JahIthBer\\Desktop\\Archive\\WOWkey.png");
Process E = Process.GetProcessById(T.Id);
Thread.Sleep(2000);
E.Kill();
每次运行总是提示E是NULL Reference,应该就是没有正确赋值,要怎么解决?

可能是你在执行这一句的时候Process E = Process.GetProcessById(T.Id);
你启动的进程还没有添加到进程列表,所以通过ID是找不到的
可以加上这么一句,等到进程完全启动以后,再去通过ID取进程的对象
Process T = Process.Start("C:\\Users\\JahIthBer\\Desktop\\Archive\\WOWkey.png");
T.WaitForInputIdle(2000);//等2秒钟
然后再执行Process E = Process.GetProcessById(T.Id);
其实只要使用T对象就可以了,不需要再创建一个E对象
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-29
Process remoteById = Process.GetProcessById(2345, "myComputer");像这样再加个参数,加个主机名。还有你引入了命名空间没有
第2个回答  2013-01-29
Process T = Process.Start("C:\\Users\\JahIthBer\\Desktop\\Archive\\WOWkey.png");
Thread.Sleep(2000);
T.Kill();
第3个回答  2013-01-29
直接用T不行么,干嘛还要走E这一步呢
相似回答