2010-08-25 77 views
1

我想杀死一个名为KnightOnline的游戏的可执行文件并拒绝用户运行它。我正在使用:定期关闭程序

Process.Start("taskkill.exe", "/f /im kol.exe"); 

但它显示一个命令窗口。我怎样才能隐藏命令窗口,还是有另一种专业但臭名昭着的方法来拒绝不需要的程序?

编辑: 我编辑的主机和封锁登录页面的游戏作为解决方案。

+2

“另一位专业人士” - 这个人如何成为专业人士? – 2010-08-25 12:33:55

+4

防止/杀死应用程序将工作,直到用户发现重命名'kol.exe'到'winword.exe'会让他们安稳地玩... – 2010-08-25 12:37:27

+0

@Developer艺术:更好/最好的方法来做它 – 2010-08-26 14:35:30

回答

2

您可以使用Process.Kill杀死另一个进程:

foreach (var process in Process.GetProcessesByName("kol")) 
{ 
    process.Kill(); 
} 
4

一种专​​业的方式是让用户知道某些正在运行的程序可能会引起冲突并要求用户在继续之前将其关闭。

沉默地杀死它,甚至没有说“我们道歉”是邪恶的。

+0

也许它是:)。但是我的小弟弟一定不知道我让他的游戏不能工作。 – 2010-08-25 12:41:50

+6

你的关系中有些东西是严重错误的... – 2010-08-25 12:46:41

+0

当我和我的妹妹更年轻时,我们曾经以类似的方式(尽管技术含量低)恶作剧 - 取出鼠标球,隐藏电源线,在键盘周围交换钥匙等我会说这是边缘邪恶,是的。我要求......一百万美元! * mwa哈哈哈哈!*'' – Piskvor 2010-08-25 16:21:56

2

试试这个,如果你想运行在一个隐藏窗口中的一些过程:

var processInfo = new ProcessStartInfo() 
         { 
         Arguments = "/f /im kol.exe", 
         FileName = "taskkill.exe", 
         WindowStyle = ProcessWindowStyle.Hidden 
         }; 

Process.Start(processInfo); 
4

它会更好不让用户首先启动程序

Windows 2000及更高版本(XP,Vista,“Seven”)具有软件限制策略 - 允许您设置程序的白名单或黑名单。如果是白名单,则只允许列出的程序启动,而使用黑名单时,除列出的程序以外的所有程序都将被允许。此检查发生在操作系统级别,不能被绕过(管理员除外)。见例如例如this

(黑名单是相当无效的,如重命名可执行文件允许重新运行;白名单是更多的工作,以获得正确的管理 - 但大多数用户需要至多20级的应用程序,再加上系统服务)

注意:并非所有版本的Windows都允许管理员设置组策略,IIRC则无法在Windows XP Home或Vista Home Basic中执行此操作。此外,用户将成为用户:如果您阻止本地游戏,他们将玩Flash游戏;如果你阻止Flash,他们会玩在浏览器中的Javascript游戏;如果你阻止了它,他们将玩纯HTML文本冒险游戏(尽管你生气地发现你偶然阻止了大多数其他网站的运行)。

如果你阻止了这一点,用户将放弃计算机并吸烟,或者带上纸牌,玩Solitaire IRL,或者找到其他避免工作的其他方法(假设我们在谈论办公室用户) - 那么这也不是一场胜利;除非你试图让用户离开电脑(正如你的评论所看到的那样)。