在 Windows 中,如果我无法将任务管理器置于前台,如何终止应用程序?

在 Windows 中,如果我无法将任务管理器置于前台,如何终止应用程序?

基本上,问题是 Windows 与 Linux 的等效之处是什么,即从那里更改 tty、登录和终止进程?

情况:有时,当似乎没有合理的方法在 Linux 下运行游戏时,我会切换回 Windows 玩游戏。问题是,其中一些游戏往往会频繁崩溃(屏幕冻结)。但是,当我尝试打开任务管理器时,会出现黑屏或根本无法退出游戏,需要我重新启动计算机。使用 Linux 已有一段时间了,通常不需要因为不重要的应用程序而重新启动,我想 Windows 可能也考虑到了这个问题。可能是我想在后台运行另一个重要的应用程序,而这个应用程序不应该在游戏期间停止。

tl;dr 当无法切换到任务管理器 rsp 时,如何在 Windows 中终止进程或与命令行交互。通过不需要其他应用程序的离线解决方案按 Alt-Tab 切换到任何其他窗口,包括命令行和 PowerShell?

编辑: 我已经尝试过但在游戏中不起作用的方法:

尝试进入 cmd/taskmanager:

  • Ctrl+Alt+Del<-- 证明机器仍然响应,因为它确实切换到我可以选择任务管理器的菜单,但是一旦我单击,我只会看到一个任务栏,上面有黑色的窗口或冻结的游戏屏幕,但没有工作的窗口......

  • Ctrl+Shift+Esc

  • Win+x

  • Win+r

尝试退出应用程序:

  • Alt+F4

  • press red X-button at right corner(冻结时无响应)

尝试切换到其他窗口:

  • Alt+Tab

打开新的虚拟桌面:

  • Win+Tab
  • Ctrl+Win+Tab

看来,Windows 键绑定是上下文相关的。还有其他方法可以强制退出无响应的应用程序吗?

什么可能有效:

  • Switch user通过Ctrl+Alt+Del(但为了终止进程而创建另一个用户似乎有些过分)
  • sign out, sign in(但这也会关闭仍然应有响应的应用程序,这是我想要避免的,但至少比完全重启要好)

我认为到目前为止,以下方法似乎有效(后者并不总是可用,但前者到目前为止似乎可以可靠地工作):

  • Task Manager -> Options > Always on Top
  • 我创建了一个快捷方式并将C:\Windows\System32\taskkill.exe /f /fi "status eq not responding"其固定到任务栏

但是,这似乎不能很好地扩展,如果我需要的不仅仅是通过任务管理器关闭进程或调用另一个命令(例如不 kill)该怎么办?全部没有响应的进程,但只有一个特定的进程,我还必须找出其 PID?

答案1

使用 Powershell。以管理员身份启动它,然后使用获取进程结合停止进程列出并停止进程/任务。要列出任务/进程:

Get-Process

列出没有响应的进程:

Get-Process | Where { !$_.Responding }

要停止无响应的任务:

Get-Process | Where { !$_.Responding } | Stop-Process -Force

要根据任务 ID 停止任务,请先获取进程。记下要停止的进程的 ID,然后运行 ​​Stop-Process cmdlet。将其替换IDofProcess为进程 ID

Get-Process
Stop-Process -PID IDofPRocess -Force

答案2

您可以使用免费 自动热键

Ctrl以下脚本将在按下++时终止拥有活动窗口Alt的进程 K

^!k::                                         ; Ctrl+Alt+K
WinGet, PID, PID, % "ahk_id " WinExist("A")   ; Get process owning active window
Process, Close, %PID%                         ; Close this process

安装 AutoHotKey 后,将脚本放入.ahk文件中并双击进行测试。您可以通过右键单击托盘栏中的绿色 H 图标并选择退出来停止脚本。要让它在登录时运行,请将其放在 的启动组中 C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

有用的 AutoHotkey 文档:

相关内容