所以我知道 ALT+F4 可以关闭程序。我知道任务管理器可以关闭程序,我也知道 taskkill 可以关闭程序。我很好奇的是,如果你用上述方法关闭程序/游戏/应用程序或其他程序,这会对你的硬件或操作系统造成任何损害吗?我知道 taskkill 也可以强制关闭程序。如果我没记错的话,任务管理器也可以,但是 alt+f4 会发送关闭请求,对吗?
基本上,我很好奇使用 taskkill /f /t /im 或 taskkill /im 关闭程序是否会对硬件或操作系统造成损害?如果说游戏正在保存时发生这种情况,我知道这可能会损坏程序,但如果不在保存期间执行此操作,使用 taskkill 关闭程序而不是通过菜单或点击红色 x 是否安全?我侧面有几个按钮,我可以按下它们来关闭程序,而不必单击它们或与它们交互,因为它们都是用批处理文件等设置的,但我想知道这是否会产生任何不良后果。
答案1
我认为对硬件造成损害taskkill
的可能性很小。
只有当您使用它来终止与其他组件协同工作的 Windows 组件时,才有可能对 Windows 造成损害,但您需要非常倒霉。通常,终止 Windows 组件只会导致其执行的任务变得不可用。终止重要进程通常会导致 Windows 立即重新启动。
使用开关与否有很大区别/f
。使用开关将导致进程立即终止(除非进程卡在无法强制终止的内核调用中)。
如果没有/f
,taskkill 将礼貌地向任务发送一条需要终止的消息,就像单击标题栏上的 X 一样。通常应该首先尝试此操作,因为任务将按顺序关闭并且不会丢失数据。只有失败时才应/f
使用。
答案2
两个都taskkill
(WM_CLOSE 信号) 和Alt+ F4,任何其他中断和关闭进程的方式都可能对您的软件或系统造成损害。
这完全取决于关闭的进程如何处理中断。一个应用程序可能无法完全正确地处理Alt+ F4,例如导致其配置无法正确保存。我想说,现在使用的所有框架和其他东西都很少见,但过去我遇到过这种情况,例如您提供的示例 - 在我按下Alt+后,游戏立即开始保存F4,我猜这是事后注册的。保存文件已损坏。
而且当然taskkill /f
(终止进程) 会比其他替代方案造成更大的危害,因为它会跳过一些已实施的安全措施。尤其是低级(例如系统相关)进程在强制关闭时可能会导致很多问题。
我认为这个问题没有办法用一般的方式回答。我只想建议不使用 taskkill
在脚本中除非你确定它是安全的- 例如,它不会损坏任何数据或类似的东西。不执行 I/O 操作的常规 CLI/GUI 应用程序是最安全的。其他任何事情 - 您可能会遇到问题。
TLDR 摘要:这取决于应用程序/流程,您应该确保不会出错,但现在大多数时候都是安全的。