问题标签 [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.
py2exe - 在 python 2.6 上加载 win32file.pyd 的问题
即使是使用 win32file 的简单脚本,我也无法正确打包 py2exe 我不断收到以下错误消息:
该脚本如下所示:
这是 setup.py:
你以前有过类似的问题吗?
版本:
Python 2.6.2、py2exe 0.6.9、pywin32-214、Windows 7 和 Windows XP Pro 作为目标机器
更新:
- 我可以在创建它的 Windows 7 上运行捆绑的程序,但不能在 XP 机器上运行它。
引发错误的 win32file.pyc 部分如下所示:
/li>
我的开发箱(windows 7)上面的行正确运行,而在测试箱(windows XP)上返回错误。
** 更新 2:**
当我使用 imp.load_dynamic 从 python 安装加载 win32file 时,我可以重新加载 dist 文件夹的 win32file.pyd 而不会出现错误。
python - Windows上的符号链接?
有谁知道从 Python 跨 win32 版本创建/读取符号链接的方法?理想情况下,应该有最少数量的平台特定代码,因为我需要我的应用程序是跨平台的。
python - 在没有 Pywin32 的 Python 中检测 Vista/7 上的符号链接(mklink)
目前,构建配方collective.recipe.omelette 在所有Windows 版本上使用junction.exe 来创建符号链接。但是 junction.exe 默认情况下不随 Windows 提供,最重要的是不支持创建指向文件(仅目录)的符号链接,这会导致很多 Python 包出现问题。
在 NT6+(Vista 和 7)上,现在有 mklink 实用程序,它不仅默认提供,而且还能够创建文件和目录的符号链接。我想更新collective.recipe.omelette 以使用它(如果可用)并且已经这样做了,除了一个简单的功能;检测文件或文件夹是否实际上是符号链接。由于这是一个小的构建配方,在我看来需要 Pywin32 有点太多了(除非 setuptools 只能在 Windows 上下载它?)。
目前在 Windows 上,omelette 所做的是在文件夹上调用 junction.exe,然后 grep 响应“替代名称:”,但我找不到任何与 mklink 一样简单的东西。
我能想到的唯一方法是在目录中调用“dir”,然后逐行浏览响应,在同一行上查找“<SYMLINK>”和文件夹/文件名。肯定有更好的东西吗?
python - 通过 python 进行 WMI 调用的 Windows 模拟?
我正在使用 PyWin32 从我的 django Web 应用程序在 python 中对系统进行 WMI 调用。我的目标是允许用户通过 Web 界面将打印机添加到系统中。为此,我使用的是 win32print.AddPrinterConnection。
这在我的用户帐户下运行开发服务器效果很好。我可以添加我想要的所有打印机。但是,最终,这将需要在作为 LocalSystem 帐户运行的 apache 下运行。
这是有问题的,原因有两个:
- LocalSystem 帐户根本没有网络权限,这是一台网络打印机。AddPrinterConnection WMI 调用最终会发出一个不允许的 COM 调用。
- LocalSystem 帐户无权访问这些打印机所在的域。他们需要域帐户才能访问。
因此,我得出的结论是,我需要模拟域用户来完成此任务。我已经使用此处找到的代码完成了此操作:
http://code.activestate.com/recipes/81402/
这似乎有效,因为我能够验证我是否已成功模拟调用代码。不幸的是,在模拟之后,我总是从 win32print.AddPrinterConnection API 调用中得到这个错误:
你知道为什么会这样吗?
非常感谢!皮特
更新
玩耍时,我注意到如果我正在模拟的用户当前登录到系统,则 AddPrinterConnection API 调用成功完成。一旦我注销该用户并在模拟该用户时重试该命令,我就会收到上述错误。
这里发生了什么?
python - python win32 扩展文档
我对http://python.net/crew/skippy/win32/上提供的 python 和 python win32 扩展都是新手,但我在网上或安装目录中找不到任何关于 win32 扩展提供的确切文档。这些信息在哪里?
python - 从 .exe 中提取 .ico 并使用 PyQt 绘画的最佳方法?
我正在寻找一种使用 Python 从 .exe 文件中提取图标的方法。我知道您可以使用 win32gui 的 ExtractIconEx 函数来获取 .exe 的图标,但这会返回一个不好的 HIcon 资源句柄,因为我想使用 PyQt 绘制图标。
此外,我看到的唯一一个使用 win32gui 的示例没有任何透明度,并且图标看起来也不平滑。
使用 Python 和 PyQt 执行此操作的最佳方法是什么?
- 编辑 -
感谢 Lukáš Lalinský 的帮助,这个问题现在已经解决了,这是最终的代码,任何人都在寻求做与我类似的事情:
python - 使用 Python 更新 MS Word(或 Open Office)书签
我想从 python 脚本中填充 MSWord 书签。我在 win32com(MSWord) 或 PyUno(OpenOffice) 中找不到这样的功能。
有谁知道如何使用 Python 中的书签?
python - On Windows in python, possibly using the Outlook API, how can I get the full name of a user from their smaller login name?
At work, we have short login names, e.g. hastingsg
, but Outlook and I believe other parts of the Windows system also have access to a longer name, e.g. Jeff Hastings.
In cpython (not IronPython), if I have the shorter login name, how can I get the longer full name? I have pywin32 and ExchangeCDO installed.
python - Python Windows Service Problems - Works when using debug argument but not while started as a service?
hopefully someone here can shed some light on my issue :D
I've been creating a Windows XP service in python that is designed to monitor/repair selected Windows/Application/Service settings, atm I have been focusing on default DCOM settings.
The idea is to backup our default configuration within another registry key for reference. Every 30 minutes (currently every 30 seconds for testing) I would like the service to query the current windows default DCOM settings from the registry and compare the results to the default configuration. If discrepancies are found, the service will replace the current windows settings with the custom configuration settings.
I have already created/tested my class to handle the registry checking/repairing and so far it runs flawlessly.. Until I compile it to an exe and run it as a service.
The service itself starts up just fine and it seems to loop every 30 seconds as defined, but my module to handle the registry checking/repairing does not seem to get run as specified.
I created a log file and was able to obtain the following error:
Traceback (most recent call last):
File "DCOMMon.pyc", line 52, in RepairDCOM
File "DCOMMon.pyc", line 97, in GetDefaultDCOM
File "pywmi.pyc", line 396, in call
File "pywmi.pyc", line 189, in handle_com_error
x_wmi: -0x7ffdfff7 - Exception occurred.
Error in: SWbemObjectEx
-0x7ffbfe10 -
When I stop the service and run the exe manually, specifying the debug argument: DCOMMon.exe debug, the service starts up and runs just fine, performing all tasks as expected. The only differences that I can see is that the service starts the process as the SYSTEM user instead of the logged on user which leads me to believe (just guessing here) that it might be some sort of missed permission/policy for the SYSTEM user? I have tested running the service as another user but there was no difference there either.
Other thoughts were to add the wmi service to the dependencies of my service but truthfully I have no idea what that would do :P This is the first time I've attempted to create a windows service in python, without using something like srvany.exe.
I have spent the better part of last night and today trying to google around and find some information regarding py2exe and wmi compatibility but so far the suggestions I have found have not helped solve the above issue.
Any suggestions would be appreciated.
PS: Don't hate me for the poor logging, I cut/pasted my logger from a different scripts and I have not made the appropriate changes, it might double up each line :P. The log file can be found here: "%WINDIR%\system32\DCOMMon.log"
UPDATE
I have tried to split this project up into two exe files instead of one. Let the service make and external call to the other exe to run the wmi registry portion. Again, when running with the debug arg it works just fine, but when I start it as a service it logs the same error message. More and more this is starting to look like a permission issue an not a program issue :(
UPDATE
DCOMMon.py - Requires pywin32, wmi (renamed to pywmi),
DCOMMon_setup.py - Requires py2exe (self executable, no need for py2exe arg)
python - 使用 python/pywin32 在 windows 中获取进程参数信息?
在 linux 中,我知道使用“ps”可以获取运行命令时使用的参数。我需要windows中的等价物
现在在python中我正在做
Process[i] = subprocess.Popen(cmd + " --daemon --config " + str(i) + ".conf", shell=False)
但是我正在一个守护进程中执行此操作,该守护进程意味着所有(或大部分)时间都在运行。由于我必须定期调试和修改这个守护进程,它启动了 3 个进程;但是当我关闭它时,进程会一直运行。(应该发生,以防万一)...
当我再次启动它时,我需要将 PID 重新映射到已存在的进程使用的配置文件,但我不知道在 Windows 中检索此信息(并解析它)的任何方法。这样的事情存在吗?