SnippingTool.exe 不在它显示的位置?

SnippingTool.exe 不在它显示的位置?

我刚买了一个新的 SteelSeries 鼠标。我正在尝试编程按钮 6 来启动“SnippingTool.exe”。

截图工具出现位于“C:\windows\system32\SnippingTool.exe”或者至少它以这种方式显示在Windows资源管理器中。

然而,在 SteelSeries Engine 3 的文件选择器中,该文件夹不包含任何此类文件。

在此处输入图片描述

此外,索引 NTFS 文件系统的“Everything”应用程序仅显示两个 SnippingTool.exe 文件,并且都不在 C:\windows\system32 中。相反,它似乎位于“C:\Windows\WinSxS\amd64_microsoft-windows-snippingtool-app_31bf3856ad364e35_10.0.17134.1_none_7f448e86f2cd59cc\SnippingTool.exe”以及“C:\Windows\SoftwareDistribution\Download\”的子文件夹中。软件分发文件夹可能用于存放临时文件,因此我猜测 WinSxS(Windows Side by Side)文件夹中的文件才是实际启动的文件。

事情变得更加奇怪。如果我从开始菜单或 system32 位置启动 SnippingTool.exe,并在 TaskManager 详细信息中查看其文件系统位置,它会显示“c:\windows\system32”。同时,如果我将按钮 6 分配给 WinSxS 位置,则尝试通过按钮 6 启动它只会关注 SnippingTool.exe 的运行实例,因此它似乎认为它是同一个应用程序。但是,如果我在 SnippingTool 处于不是已经在运行,那么我只得到这个空白的错误对话框,其图标是截图工具的图标:

在此处输入图片描述

有人能解释这种奇怪的行为吗,或者为什么这样的文件只出现位于“c:\windows\system32”?根据这些信息,该文件的实际位置在哪里?我认为它可能是文件系统符号链接,但 cmd.exe 或 junction64.exe(来自 Microsoft)均未表明它具有任何此类属性。

Windows 似乎费了很大劲才让我觉得这个文件存在于 c:\windows\system32 中,而不是任何类型的符号链接或连接点……它出现在资源管理器的 cmd.exe 目录列表中,没有任何特殊属性。但是,我实际上无法在文件选择器中选择该文件,而我的“Everything”应用程序绕过 Windows 并解析 NTFS 文件系统,显示它不在那里。文件实际位置的所有证据似乎都与 Windows 试图告诉我的内容相矛盾。

提供更多见解的解决方法

我尝试创建一个包装器控制台应用程序来启动 c:\windows\system32\SnippingTool.exe 上的文件,但一开始没有成功。例如,如果我构建一个仅调用它的 C# 控制台应用程序,System.Diagnostics.Process.Start("c:\\windows\\system32\\SnippingTool.exe");它会抛出一个错误,提示“系统找不到 System.Diagnostics.Process.StartWithShellExecuteEx 中指定的文件”。因此,这支持了此文件实际上并不位于 Explorer 所显示的位置这一想法。在 WindowsKey+R(运行)对话框中粘贴相同的路径可以正常工作。因此,Explorer、cmd.exe、Windows 运行对话框都合谋假装此文件存在,但任何直接访问该文件的尝试都表明它实际上并不存在。

无需直接启动文件,我可以通过向 explorer.exe 传递路径作为参数来间接启动它,而不会出现错误,如下所示:System.Diagnostics.Process.Start(new ProcessStartInfo() { UseShellExecute = false, FileName = "c:\\windows\\explorer.exe", Arguments = "c:\\windows\\system32\\SnippingTool.exe" });

答案1

实际上通过 PE x64 很容易找到。运行截图工具。右键单击。属性。浏览到*.EXEWindows 11 22H2他们改变了这个应用程序的位置: 在此处输入图片描述

相关内容