问题标签 [pywin32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1203 浏览

python - pyWin32 支持?构建时出现问题;语法错误

我刚刚下载了 pyWin32 ( https://sourceforge.net/projects/pywin32/ ) 并开始安装它。

我的第一个问题:有人知道,我在哪里可以获得特定的 pyWin32 支持?我在 sourceforge 看不到/找不到任何东西。

第二个问题:你们中是否有人遇到过这个问题,即 h2py.py 在安装过程中遇到了语法错误?

我得到这个消息:

但是当我查看提到的 h2py.py 时,我看不到任何语法错误(当然!!:-))

那么,有人知道我该如何应对吗?那简直太好了!:-)

蒂亚本

0 投票
4 回答
5760 浏览

python - Python win32 服务自动启动

我正在编写一个 python win32 服务,下面是我编译它工作的服务时的代码片段,但我需要转到 services.msc 并手动启动它。

当我通过以下方式安装服务时是否有一个选项:myservice.exe install 它会自动启动?

以下是我的代码片段:

0 投票
3 回答
3775 浏览

python - 使用 Win32 使窗口透明?

使用 Python Win32 扩展,如何使 Windows XP 上的任意窗口透明?

0 投票
1 回答
777 浏览

python - 为什么这个有效的 Tkinter 代码与一些 PyWin32 混合时会崩溃?

所以我在 tkinter 中制作了一个非常小的程序供个人使用,我遇到了一个非常奇怪的墙。我将 tkinter 与 pywin32 绑定混合在一起,因为我真的很讨厌与 pywin32 的语法和命名约定有关的一切,而且感觉 tkinter 用更少的代码完成了更多工作。奇怪的是在 pywin32 剪贴板观看和我的程序在 tkinter 中对它的反应之间的过渡。

我的窗口及其所有控件都在 tkinter 中处理。当剪贴板更改时,pywin32 绑定正在执行剪贴板监视和剪贴板访问。根据我收集到的有关剪贴板查看 pywin32 工作方式的信息,只要您为 pywin32 提供窗口的 hwnd 值,您就可以使其与任何您想要的东西一起工作。我正在做那部分,它在程序第一次启动时起作用。当剪贴板更改时,它似乎不起作用。

当程序启动时,它会抓取剪贴板并将其放入搜索框和编辑框就可以了。当剪贴板被修改时,我想要触发的事件正在触发......除了在程序启动之前完全有效的事件现在导致奇怪的挂起而不是做它应该做的事情。如果剪贴板发生更改,我可以将剪贴板内容打印到标准输出,但不能将相同的数据放入 tkinter 小部件中。只有当它在被剪贴板更改通知触发后开始与我的任何 tkinter 小部件交互时,它才会这样挂起。

感觉就像我在将我使用的剪贴板观看示例代码改编为我的 tkinter 使用程序时错过了一些 pywin32 礼仪。Tkinter 显然不喜欢产生堆栈跟踪或错误消息,我什至不知道要寻找什么来尝试使用 pdb 对其进行调试。

这是代码:

0 投票
1 回答
3469 浏览

python - 在 64 位 Windows 7 机器上使用 Python 构建 Com 服务器

原帖在这里: http: //mail.python.org/pipermail/python-win32/2010-December/011011.html

我在用:

  • 操作系统:64 位 Windows 7 专业版
  • Python:python-2.7.1.amd64
  • Python win32 扩展:pywin32-214.win-amd64-py2.7
  • Py2exe:py2exe-0.6.9.win64-py2.7.amd64

我正在尝试为 Windows 构建图标覆盖。它在 32 位 Windows 上运行良好,但在 64 位 Windows 7 上无法运行。

以下是我为测试创建的 Python 模块:

  1. test_icon_overlay.py: ( http://mail.python.org/pipermail/python-win32/attachments/20101229/bb8c78a4/attachment-0002.obj ) com 服务器在 Python 中创建,用于添加复选标记覆盖图标 (C: \icons\test.ico) 在“C:\icons”文件夹中

  2. setup_VI.py:(http://mail.python.org/pipermail/python-win32/attachments/20101229/bb8c78a4/attachment-0003.obj)创建 test_icon_overlay.dll 用于分发的安装文件。

  3. icons.zip:(http://mail.python.org/pipermail/python-win32/attachments/20101229/bb8c78a4/attachment-0001.zip)进行测试,您应该在 C:\ 中提取 icons.zip

C:\icons当我python test_icon_overlay.py在 Windows 命令提示符下执行并重新启动时,图标覆盖出现在文件夹上explorer.exe。但它不适用于使用创建的 dll 文件setup_VI.py

我已经使用创建了 dll 文件python setup_VI.py py2exe,然后尝试使用regsvr32 test_icon_overlay.dll. 注册失败并出现 Windows 错误消息Error 0x80040201 while registering shell extension

然后我打开了记录器,Python27/Lib/site-packages/py2exe/boot_com_servers.py这是我要进入的comerror.txt回溯regsvr32 test_icon_overlay.dll

看起来win32api.GetModuleFileName(sys.frozendllhandle)在 64 位 Windows 7 上构建的 dll 可能存在问题。

此外,我看到pywin32-214.win-amd64-py2.7在 64 位 Windows 7 上的安装完成并出现错误消息:快照

有什么我做错了吗?对此的任何帮助都将受到高度赞赏。

0 投票
2 回答
688 浏览

python - win32api:获取位图调色板

我基本上是这样做的,但是是 8 位的。我可以使用“P”作为模式位正确获取位图位。但是,我有所有这些位图位,但没有调色板——PIL 只使用默认的灰度调色板。如何从图像中获得正确的调色板?

0 投票
1 回答
161 浏览

python - pywin32:获取系统调色板条目

是否有GetSystemPaletteEntriespywin32 的等价物?如果没有,我该如何打这个电话?

0 投票
1 回答
936 浏览

python - 如何在 IE 8 上自动设置代理

我有一个带有登录凭据的代理列表(用户:pass@1.2.3.4:5678)。我试图想出一种在 IE 8 中旋转这些代理的方法。

尝试 1)

使用 python 的 pywin32 模块,我编写了一个小脚本来设置代理。

此解决方案非常适合不需要用户名/密码的代理。我意识到有些东西出了问题,因为代理没有工作。

尝试 2)

我进了IE

工具 -> Internet 选项 -> 连接 -> 局域网设置 -> 高级 我将代理设置为 user:pass@1.2.3.4:5678 单击“确定”后,我输入的所有信息都丢失了。

在 IE 8 中,您必须只输入 IP/端口,然后打开一个 url。此时,系统会提示您输入用户名和密码。考虑到我的代理列表非常庞大,我需要找到一种自动设置它的方法。

尝试 3)

我打开控制面板 -> 所有控制面板项目 -> 凭据管理器,发现我现有的代理凭据保存在那里。

我找到了一个名为 cmdkey.exe 的实用程序,它是 Credential Manager 的命令行工具。我尝试创建一个代理凭据,就像现有的凭据之一(在 IE 的提示符下输入我的凭据)。

凭据看起来与我现有的凭据相同,因此我启动了 IE 并尝试了新代理。不走运,仍然提示我输入代理的用户名和密码。

在哪里/如何为 Windows 7 的 IE 8 上的代理设置用户名/密码?

0 投票
1 回答
3882 浏览

python - 64位Windows 7上的Python 64位DLL COM服务器注册问题

我正在尝试在 64 位 Windows 7 上使用 Python 2.7 创建一个简单的 COM 服务器,但我无法成功注册 DLL。我能够在 32 位 Windows XP 上使用 Python 2.6 成功地做到这一点。我还可以直接从 Python 注册我的课程。

这是我的模块 heikki.py,基于pywin32 COM 教程

我可以像这样从命令行成功注册它(我有 64 位 Python 2.7.1,pywin32 214,py2exe 0.6.9,c:\python27 在 PATH 中):

然后,我在 c:\temp 中创建了一个基于py2exe COM 服务器示例的 setup.py 文件:

然后我创建 DLL:

但是,这会导致错误消息:

我通过在安装脚本中添加以下内容来部分修复:

导入系统

但我仍然得到:

我读到在某些情况下可以忽略此错误,因此我继续前进。此时我的 dist 目录如下所示:

所以我尝试注册DLL:

但这会弹出一个对话框,上面写着:

根据MS 知识库

然后我转向Dependency Walker,它给了我 2 个关于 heikki.dll 的警告:

后一个我可以双击以获取更多信息,第一个说:

然后我在 regsrv32 上使用了 Dependency Walker;只需打开 regsvr32 就会对相同的文件发出警告。分析 heikki.dll 给出了以下错误:

在某些尝试中,我也遇到了 ieshims.dll 的错误,但我将 Internet Explorer 目录添加到 PATH 并将 DLL 复制到 dist 并摆脱了该错误。Dependency Walker 关于 <empty string>错误这样说:

我也希望 zlib.pyd 错误是无害的,因为应该不再需要 zlib.pyd ,因为它应该是内置的 AFAIK。我尝试在我的 dist 目录中将 zlib1.dll 作为 zlib.pyd 删除,但是虽然这消除了 DDL 导入错误,但还有另一个关于 pyd 文件没有预期入口点的错误(initzlib 或其他东西,忘记了)。

在我的尝试中,我也无法摆脱 py2exe 的 gen_py 警告。我尝试了对 setup.py 文件以及 heikki.py 模块的各种调整,但没有成功。

在这一点上,我已经没有想法可以研究了。

0 投票
1 回答
1820 浏览

python - 如何使用 Python 将用户移动到不同的 OU

我一直在玩 Tim Golden 出色的active_directory 模块和广泛的 python-ldap 模块,虽然我看到了大量关于如何从 python 查询、修改、创建和删除 Active Directory 中的条目的文章,但我可以' t 为我的一生找到任何关于使用 python 将用户移动到不同 OU 的建议。我的 google-foo 是让我失望还是这不可能?(我在 c# 方面取得了巨大的成功,但我更喜欢在我可以的地方使用 python)

提前致谢

编辑:好的,我做了更多的挖掘并意识到我需要使用 MODRDN 命令。这是通过 Python_Ldap 提供的,所以耶!...但是我似乎无法哄 python-ldap 使用 Windows 凭据进行身份验证,所以我一直在使用 pywin32。pywin32 非常适合编辑属性,但我还没有找到通过此模块编辑专有名称的方法……哼哼!任何线索将不胜感激。