为啥我看不到在 Cygwin 之上使用 Python 的 winlogon.exe?

Posted

技术标签:

【中文标题】为啥我看不到在 Cygwin 之上使用 Python 的 winlogon.exe?【英文标题】:Why can I not see winlogon.exe using Python on top of Cygwin?为什么我看不到在 Cygwin 之上使用 Python 的 winlogon.exe? 【发布时间】:2013-11-07 18:11:11 【问题描述】:

这是我在 Windows XP 计算机上搜索的文件

C:\Windows\System32\winlogon.exe

我已经显示了所有文件的文件扩展名,检查了显示隐藏文件,检查了显示隐藏的系统文件,我可以使用资源管理器查看该文件,但无法使用 python 查看该文件。我什至看不到文件使用:

os.system( 'dir C:/Windows/System32/winlogon.exe' )

我可以通过运行命令提示符查看文件

dir C:\Windows\System32\winlogon.exe

Python's documentation: "在某些平台上,如果未授予对请求的文件执行 os.stat() 的权限,即使路径物理存在,此函数也可能返回 False。"

我想使用常规的 python 库来做到这一点。我也试过 open() 命令。如何使用 Python 查找此文件?

注意:我在 Windows XP 的 Cygwin 下运行 Python27。这是因为我在网络中,并且更容易编写从 Linux 运行的脚本,ssh 到 Windows 的 Cygwin sshd 客户端,以便运行。

【问题讨论】:

当然,你已经找到了?并且毫不奇怪操作系统不允许您访问它 你到底想在这里完成什么?肯定不仅仅是查看文件是否存在 为什么是那个特定的文件?你想达到什么目的? 我在一家对重要系统文件进行 MD5 处理的公司工作。如果我们无法检测到某个文件,那么我们就无法对其进行 MD5。这就是原因。 哇。这就是问题所在。显然 32 位 cygwin 只能看到 32 位文件,但 64 位 cygwin 可以看到所有文件。我想这根本不是 python 问题。谢谢你们的帮助。 【参考方案1】:

问题是我使用的是 64 位 Windows 和 32 位 Cygwin。显然 32 位 Cygwin 只能看到 32 位文件,而 64 位 Cygwin 可以看到所有文件。

来源:http://cygwin.com/ml/cygwin/2006-01/msg00444.html

这可能适用于在 64 位环境中运行的所有 32 位应用程序。如果应用程序计划在现有的 64 位机器上运行,那么许多 32 位应用程序升级到 64 位的另一个原因。

【讨论】:

以上是关于为啥我看不到在 Cygwin 之上使用 Python 的 winlogon.exe?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 cygwin 使用 Visual Studio BuildTools 而不是 gcc?

为啥 FindWindowEx 找不到我的所有按钮?

为啥某些 Cygwin 文件不可执行?

在 Cygwin 上找不到 sudo 命令

使用cygwin安装c++ boost:找不到配置文件

使用 Cygwin 为 Linphone 运行 make 命令时找不到 android 错误