我想要杀死名为KnightOnline的游戏的可执行文件并拒绝用户运行它。我正在使用:
Process.Start("taskkill.exe", "/f /im kol.exe");
但是它显示了一个命令窗口。如何隐藏命令窗口,还是有另一种专业但臭名昭着的方法来拒绝不需要的程序?
修改 我编辑了主机并阻止了游戏的登录页面作为解决方案。
答案 0 :(得分:4)
专业的方法是让用户知道某些正在运行的程序可能会发生冲突并要求用户在继续之前关闭它。
在没有说“我们道歉”的情况下以沉默的方式杀死它是邪恶的。
答案 1 :(得分:4)
首先不允许用户启动程序会不会更好?
Windows 2000及更高版本(XP,Vista,“Seven”)具有软件限制策略 - 允许您设置程序的白名单或黑名单。如果是白名单,则只允许列出的程序启动,而使用黑名单时,将允许除列出的程序之外的所有程序。此检查发生在操作系统级别,无法绕过(管理员除外)。参见例如this例如。
(黑名单非常无效,因为重命名可执行文件允许再次运行它;白名单需要更多工作才能正确和管理 - 但大多数用户最多需要20个应用程序,加上系统服务)
注意:并非所有版本的Windows都允许管理员设置组策略,IIRC无法在Windows XP Home或Vista Home Basic中执行此操作。
此外,用户将是用户:如果您阻止本地游戏,他们将玩Flash浏览器游戏;如果你阻止Flash,他们将玩浏览器内的Javascript游戏;如果你阻止它,他们将播放纯HTML文本冒险游戏(虽然你是否因为偶然阻止大多数其他网站无法正常运行而感到非常生气)。
如果你阻止,那么用户将放弃计算机并吸烟,或携带卡片并玩Solitaire IRL,或找到无数其他方法来避免工作(假设我们谈论的是办公室用户) - 所以也不是胜利;除非你试图让用户离开电脑(从评论中看出来)。
答案 2 :(得分:2)
您可以使用Process.Kill来杀死其他进程:
foreach (var process in Process.GetProcessesByName("kol"))
{
process.Kill();
}
答案 3 :(得分:2)
如果要在隐藏窗口中运行某个进程,请尝试此操作:
var processInfo = new ProcessStartInfo()
{
Arguments = "/f /im kol.exe",
FileName = "taskkill.exe",
WindowStyle = ProcessWindowStyle.Hidden
};
Process.Start(processInfo );