在 Windows Vista 及更高版本中,当您尝试移动、删除或重命名已锁定的文件时,资源管理器将显示文件正在使用对话框可让您重试或取消。
问题是这个对话框不在 Alt-Tab 列表中,所以你无法轻松切换到它。如果你从 Explorer 窗口触发它,那么你不仅无法切换到对话框,甚至 Explorer 窗口也会从 Alt-Tab 列表中删除,所以你甚至无法再切换到它。
这非常令人沮丧,因为如果你切换到另一个窗口,那么这似乎是访问文件正在使用对话框的另一种方法是使用鼠标最小化重叠窗口来查看它。如果出于某种原因只使用键盘,那么这可能很困难/烦人/不可能。
有谁知道一个简单的方法来获得文件正在使用与键盘对话?
答案1
这文件正在使用对话框对于原始窗口/文件夹而言是模态的,因此,一个不太理想但比抓取鼠标更好的选择是使用另一种方式切换到原始窗口。由于文件夹是(莫名其妙地)从 Alt-Tab 列表中移除后,您可以从任务栏切换到该文件夹。例如,如果文件夹是左侧第二个任务栏按钮,那么您可以尝试按⊞ Win+2激活它,它应该会聚焦到文件正在使用对话框。如果原始文件夹是桌面,则按⊞ Win+D应该会激活桌面并聚焦有问题的对话框。
不幸的是,这不是万无一失的方法,而且它存在一些局限性和问题。
它需要访问原始文件夹的任务栏按钮,这意味着使用⊞ Win组合键(假设它们没有被禁用或覆盖)。此外,如果有大量任务栏按钮,它会变得繁琐和难以操作,尤其是当需要滚动任务栏时。
如果您重新打开原始文件夹,则文件夹本身将从文件正在使用对话框及其任何键盘活动都将转到文件夹而不是对话框(即使对话框仍位于文件夹顶部)。此外,文件夹本身将重新出现在 Alt-Tab 列表中,但文件正在使用对话框将不再聚焦,因此切换到文件夹现在无济于事,你现在必须找到一种直接切换到对话框本身的方法。
重新聚焦对话框的一种方法是尝试再次重命名/删除/移动锁定的文件,但这会创建一个新的 文件正在使用对话框,而不是将焦点放在现有对话框上◔_◔
。但是,现在焦点放在了新对话框上,如果您将其关闭,则焦点将放在旧对话框上,而不是文件夹上。这是一项非常繁琐的工作,界面设计也很荒谬,但至少它能正常工作,您不必求助于鼠标。
遗憾的是,微软真的失败了,其糟糕的设计选择和更差的测试在这里显露无遗。
答案2
我想到了另一个(不是理想的,但肯定足够好)解决方案。如果您有/使用 AutoHotkey 或类似的实用程序,您可以使用脚本来简化切换到文件正在使用對話。
下面的脚本是一个 AutoHotkey 脚本,它将一个简单的函数绑定到Ctrl++Alt按下Tab后,查找所有文件正在使用对话框并激活它们,以便它们可以获得键盘焦点。
除了需要一点时间来适应不同的热键外,它还有一个限制:即使它激活了所有文件正在使用依次打开多个对话框,如果您关闭最后一个被激活的对话框,下一个对话框不会像您预期的那样自动获得键盘焦点。不幸的是,这只是对话框实现方式有缺陷的另一个症状,您只需再次按下热键即可进入下一个对话框。
; AutoHotkey script that binds Ctrl+Alt+Tab to a function to
; activate/focus Windows Explorer’s File-In-Use dialogs
; Ctrl+Alt+Tab
^!Tab::
; Get a list of all dialog boxes with the title “File In Use”
WinGet, list, List, File In Use ahk_class #32770
; For each such dialog box…
Loop, %list%
{
this_id := list%A_Index% ;Get its HWND
WinActivate, ahk_id %this_id% ;Activate it
}
return