Articles of pywin32

py2exe – 没有系统模块'pywintypes'

我试图将一个简单的Python脚本转换为Windows可执行文件。 我的setup.py脚本是: from distutils.core import setup import py2exe setup( name = "Simple Script", options = { "py2exe": { "dll_excludes" : ["libmmd.dll","libifcoremd.dll","libiomp5md.dll","libzmq.dll"] } }, console=['simple_script.py'] ) 我已经添加了dll_excludes,因为他们每个人都导致失败。 现在我遇到了一个我不能简单排除的失败。 这是错误跟踪: Traceback (most recent call last): File "setup.py", line 12, in <module> console=['rules signed.py'] File "C:\Anaconda\lib\distutils\core.py", line 152, in setup dist.run_commands() File "C:\Anaconda\lib\distutils\dist.py", line 953, in run_commands self.run_command(cmd) […]

Python ctypes:从不调用SetWindowsHookExcallback函数

我想用Python编写一个程序,它知道何时显示警告框/对话框。 它处理多个显示器,当任务栏图标闪烁,popup错误/通知等时,我希望它在辅助显示器上显示可视化图像。 据我所知,检测这些事件的方法是使用消息钩子,如下所述: http : //msdn.microsoft.com/en-us/library/ms632589%28v=vs.85%29.aspx 我甚至很幸运地find一个从Python访问SetWindowsHookEx函数的例子。 (这个特定的例子使用鼠标信号,但我可以改变常量来侦听不同的消息)。 http://www.python-forum.org/pythonforum/viewtopic.php?f=2&t=11154 但是,上面的例子不起作用。 callback函数从来没有被调用,不pipe我的鼠标点击,鼠标中键单击不会导致程序退出。 这个例子是从2009年(预Windows 7?),但我不知道是否是这个问题。 所以,我的问题是,任何人都可以1.找出为什么代码工作,或2.告诉我另一种方式来实现我在做什么(最好在Python中,但我会去其他语言如果necesarry)。 编辑:是否有可能做我想要的WMI? 我不太了解WMI,但我知道它有非常好的Python界面。

如何从活动窗口中检索选定的文本

我正在尝试为使用Python的 Windows创build一个简单的开源工具,该工具可以对当前活动窗口的选定文本执行用户定义的操作。 该实用程序应该使用预定义的键盘快捷键来激活。 以下示例部分概述了使用情况: 用户使用鼠标或键盘select一些文本(在任何应用程序窗口中) 用户按下预定义的键盘快捷键 所选的文本是由我们的实用程序检索或复制到剪贴板(两种方法应该是好的) 对所选文本执行键盘快捷键相关操作 令我困惑的是第3步 。 如何从活动窗口中检索选定的文本 。 这应该适用于所有的应用程序。 我使用pywin32模块。 在此先感谢您的答案和提示。 更新#1 : 原来有两种方法可以完成这个任务: find活动窗口,然后发送一个消息/击键(Ctrl-C)给它,以便将选定的文本复制到剪贴板。 然后该实用程序可以通过使用剪贴板相关function访问该文本。 find活动的窗口,然后直接检索选定的文本(不复制到剪贴板)。 这似乎比第一种方法更困难。 作为出发点: 获得活动窗口ID Anurag Uniyal在他的答复指出。 或者用下面的代码获取窗口对象: import win32ui wnd = win32ui.GetForegroundWindow() print wnd.GetWindowText()

使用Win32使窗口透明?

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

PyWin32使用MakePy实用程序和win32com来获取networking统计信息

这个问题是对我以前的问题的继续。 我正在尝试使用PyWin32获取我的Windows 7系统的Network Statistics 。 我遵循的步骤是: 1)运行COM MakePy utility并在network list manager 1.0 type library下selectnetwork list manager 1.0 type librarytypes库。 2)上面的过程生成了这个python文件 。 接下来我创build了类NetworkListManager(CoClassBaseClass)使用对象 import win32com.client as wc obj = wc.Dispatch("{DCB00C01-570F-4A9B-8D69-199FDBA5723B}") 现在我试图访问由上面创build的对象obj提供的方法。 help(obj)给了我 GetNetwork(self,gdNetworkId = <PyOleEmpty object> ) Get a network given a Network ID. 已连接 Returns whether connected to internet or not //Other methods removed 所以,现在当我使用 […]

Python – 如何获得一个进程的开始/基地址?

我如何获得进程的开始/基地址? 每个示例Solitaire.exe(solitaire.exe + BAFA8) #-*- coding: utf-8 -*- import ctypes, win32ui, win32process PROCESS_ALL_ACCESS = 0x1F0FFF HWND = win32ui.FindWindow(None,u"Solitär").GetSafeHwnd() PID = win32process.GetWindowThreadProcessId(HWND)[1] PROCESS = ctypes.windll.kernel32.OpenProcess(PROCESS_ALL_ACCESS,False,PID) print PID, HWND,PROCESS 我想计算一个内存地址,为此我需要solitaire.exe的基地址。 这里是我的意思的图片:

有没有一个使用pywin32 createprocessasuser和获取输出的好例子?

我需要使用pywin32创build一个进程的方法作为一个不同的用户,然后从生成的进程中获取标准输出,stderr和错误代码,以及在运行时将input提供给进程。 问题是,我似乎无法findcreateprocess函数的一个很好的例子。 由于我需要以不同的用户身份运行subprocess,然后在stdin中获取stderr,stdout,feed并在完成时检索错误代码,这个问题更加复杂。

在Windows Server 2008上告诉从关机重启

根据MSDN,无法确定是否使用WM_ENDSESSION消息重新启动或closures。 我发现这样做的唯一方法 ,但它是相当丑陋的,只适用于Windows 2000 Server,不适用于2008 Server。 我问的原因是我正在将Linux守护进程作为系统服务移植到Windows。 该守护进程在重新引导和系统closures事件中的行为不同。 我也在python32项目中使用python,如果它以某种方式帮助回答。

从Windows上的python连接到odbc的常见方法?

我应该使用什么库来连接到Windows上的Python的odbc? 当涉及到odbc的pywin32有没有一个很好的select? 我正在寻找一些logging完备,function强大,积极维护,等等pyodbc看起来不错 – 有没有其他的?

什么是使用win32file.ReadFile从pipe道获取输出的正确方法?

我正在使用pywin32扩展来访问Python下的win32 API。 我是使用Python进行Windows编程的新手 – 我是一个POSIX的人,所以我可能会以一种头脑的方式来做事情。 我正在尝试使用win32file.ReadFile函数,并且在解释可能的结果代码时遇到了一些麻烦。 我打电话这样的function: result, data = win32file.ReadFile(child_stdout_r, 4096, None) 我正在阅读我启动的subprocess的输出。 我得到了很好的数据,但是我担心pipe道中的数据可能会超过4096个字符。 (我宁愿这样做,而不是只是select一个任意大的缓冲区大小。) 在需要读取超过4096个字符的情况下,我需要多次运行win32file.ReadFile,直到耗尽pipe道。 为了找出是否需要多次运行ReadFile,我需要解释结果代码。 ActiveState文档说: 结果是(hr,string / PyOVERLAPPEDReadBuffer)的元组,其中hr可以是0,ERROR_MORE_DATA或ERROR_IO_PENDING。 因为我在函数调用中将重叠值设置为None,所以我认为我不需要担心任何PyOVERLAPPEDReadBuffer的东西。 (因为我得到有效的数据,我想我是对的。) hr结果variables有两个问题: 我无法在任何地方find常量ERROR_MORE_DATA或ERROR_IO_PENDING的值。 ActiveState文档似乎暗示0是成功的,常量(不pipe它们是什么)表示失败。 Microsoft文档状态为0表示失败,非零表示成功,您需要运行GetLastError以了解更多信息。 什么是正确的方法来做到这一点? 编辑添加:我没有使用subprocess,因为我需要将subprocess添加到我创build的作业对象。 目标是如果父进程死亡,让所有subprocess立即死亡。 通过向作业对象添加subprocess,当作业对象的最后一个句柄closures时,subprocess将被终止。 由父母持有的手柄将在父母退出时closures。 所有这一切,据我所知,排除了我使用subprocess。