我正在用c#编写一个程序,每当有人试图打开某个.exe文件时,我们称之为“prog.exe”,程序将关闭它并随机打开其他三个程序之一,让我们调用它们“a.exe”,“b.exe”,“c.exe”。我的问题是我不希望用户只是通过更改文件的名称或位置来中断它。有没有办法可以知道文件的名称或位置是否发生了变化?
我已经设法做了所有事情,从找到程序杀死,使用.Kill()
杀死它并使用
Random rand = new Random(DateTime.Now.Millisecond);
int progNum = rand.Next(1, 3);
string progName = "a.exe";
switch (progNum)
{
case 2:
progName = "b.exe";
break;
case 3:
progName = "c.exe";
break;
}
Process.Start(@"c:\" + progName);
但我无法弄清楚如何跟踪这些文件的更改。暂时,每分钟,我有一个搜索通过驱动器并搜索exe文件,如果在我想要的目录中找不到,但这还不够,并且不会注意到简单的名称更改。
答案 0 :(得分:2)
var ie = Process.GetProcesses()
.FirstOrDefault(p => p.ProcessName.Equals("iexplore"));
if (ie != null)
ie.Kill();