Articles of pywin32

在Windows XP上安装pywin32-216时发生安装后错误

我正在使用pywin32-216.win32-py2.6.exe软件包在Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on win32上安装pywin32 Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on win32 。 我看到以下安装后的错误。 有人能帮我理解哪里出了问题吗? 提前致谢。 Copied pythoncom26.dll to C:\WINDOWS\system32\pythoncom26.dll Copied pythoncomloader26.dll to C:\WINDOWS\system32\pythoncomloader26.dll Copied pywintypes26.dll to C:\WINDOWS\system32\pywintypes26.dll FAILED to register the Python COM objects -> Software\Python\PythonCore\2.6\Help[None]=None -> Software\Python\PythonCore\2.6\Help\Pythonwin […]

如何检查操作系统是否是Python的Vista?

如何以最简单的方式区分Windows XP和Windows Vista,使用Python和pywin32或wxPython ? 本质上,我需要一个函数,如果当前操作系统是Vista,将返回True: >>> isWindowsVista() True

LVITEM为Windows 64位

很长一段时间,我尝试使用带有LVIF_TEXT掩码的LVM_GETITEMW消息来获取ListView的文本。 我的程序工作在32位但不是在64位体系结构。 我发现问题是在LVITEM结构。 不久,我的问题是哪个结构是适当的64位,为什么。 我用作LVITEMW结构的结构体具有以下字段: ('mask', c_uint32), ('iItem', c_int32), ('iSubItem', c_int32), ('state', c_uint32), ('stateMask', c_uint32), ('pszText', c_uint32), ('cchTextMax', c_int32), ('iImage', c_int32), ('lParam', c_uint64), ('iIndent', c_int32), ('iGroupId', c_int32), ('cColumns', c_uint32), ('puColumns', c_uint32), ('piColFmt', c_int32), ('iGroup', c_int32) (用python 2.7 ctypes编写,但这只是一种书写forms – 语言真的不相关)。 这些字段与文档一样 。 经过大量的search,我发现这个论坛正是我所需要的 – 64位解决scheme! 所以在64位的结构应该有更多的“空间”,应该看起来像这样(指针现在是64位,也是状态stateMask是64位,这有点不同于论坛的build议,但也起作用): ('mask', c_uint32), ('iItem', c_int32), ('iSubItem', c_int32), ('state', c_uint32), ('stateMask', […]

沉迷于win32api + COM和SO的答案

从我这里的另一个问题,我问如何从Windows媒体播放器和Zune检索当前正在播放的歌曲,我从一个C ++开发人员的答案谁给了我一个解释我将如何做这个WMP。 但是,我不是C ++开发人员,也不是很熟悉pywin32库。 最重要的是,所有这些文件(特别是关于WMP)是非常可怕的 。 因此,我需要你的帮助,了解我将如何在Python中完成以下任务。 资源 我用C ++编写代码来打印当前在WMP中播放的媒体名称。 这是一个简单的控制台应用程序(78行代码)。 脚步: 1)实现了一个基本的COM对象实现IUnknown,IOleClientSite,IServiceProvider和IWMPRemoteMediaServices。 使用ATL模板CComObjectRootEx这很简单(你的里程可能会有所不同)。 需要(简单)代码的唯一方法是IServiceProvider :: QueryService和IWMPRemoteMediaServices :: GetServiceType。 所有其他方法可能会返回E_NOTIMPL 2)实例化“WMPlayer.OCX”COM对象(在我的情况下,通过CoCreateInstance) 3)通过QueryInterface从对象中检索一个IOleObject接口指针 4) Instanciate在1)中看到的类(我使用CComObject <> :: CreateInstance模板) 5)使用从3)得到的接口的SetClientSite方法,将一个指针传递给你的OleClientSite实现。 6)在SetClientSite调用期间,WMP会callback你:fisrt询问一个IServiceProvider接口指针,然后调用QueryService方法,询问一个IWMPRemoteMediaServices接口指针。 返回你的IWMPRemoteMediaServices的实现,第三,你将通过GetServiceType再次被调用。 您必须然后返回“远程”。 您现在连接到WMP运行实例 7)查询COM对象的IWMPMedia接口指针 8)如果7)没有给NULL,请阅读IWMPMedia :: name属性。 9)完成 以上所有内容都是使用VS2010 / Windows Seven进行testing,并且运行WMP(如果没有运行媒体播放器进程,则什么也不做)。 我不知道是否可以/想要在Python中实现COM接口和对象。 如果您对我的C ++代码感兴趣,请告诉我。 您可以在C ++ DLL中使用该代码,然后从Python中调用它。 我知道一点关于win32api。 在第一步,我真的不知道该怎么做,使用IOleClientSite在msdn文档中search结果,这是一个接口。 但是,这就是我已经陷入困境的地方。 我无法find任何东西(可能只是我可怕的search技巧)在Python中使用这些东西。 第二步: WMP = win32com.client.Dispatch("WMPlayer.OCX") […]

使用Python将我的Windows计算机与无线AP连接起来

我想写一个python脚本,可以使我的计算机关联到一个无线接入点,给定的名称作为一个string。 例如,我可能会指定我想连接到linksys ,我的脚本会导致计算机这样做。 我看了一下这个问题,却无法从查看提供的链接中理解该怎么做。 有人能指出我正确的方向吗?

在Python中获取打开的窗口列表

我正在用Python编写一个应用程序,它必须能够将密钥或文本发送到另一个应用程序。 例如,如果我打开Firefox,我应该可以发送一个URL来打开它。 我已经有了SendKeys模块,并且已经阅读了win32模块,但是我不知道是否有办法在没有打开的窗口的情况下过滤掉进程。

Python的Windows服务 – 没有响应从内置的exe的启动/停止(但在Python中)

这是我第一次build立一个Windows服务,我以为我有它的工作。 安装为python aservice.py install正常工作,并作出相应的响应。 但是,因为我将需要安装此服务的机器,将不会安装python,我想将其构build到一个可执行文件,可以安装该服务。 尽pipe可执行文件成功安装服务,但是当我尝试手动启动时,或者通过net start或sc start ,服务不响应。 手动启动返回 – 错误1053:服务没有及时响应启动或控制请求。 净开始返回 – 服务没有响应控制function。 当用python安装时,它响应所有的命令,并正常工作。 不知道在构build过程中发生了什么,但我显然缺less一些东西 使用Python 3.4 64位。 所有需要该服务的盒子也将是64位。 服务定义 class aservice(win32serviceutil.ServiceFramework): _svc_name_ = "Test Login Service" _svc_display_name_ = "Test Login Service" _svc_description_ = "Test" def __init__(self, args): win32serviceutil.ServiceFramework.__init__(self, args) self.hWaitStop = win32event.CreateEvent(None, 0, 0, None) def SvcStop(self): self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) win32event.SetEvent(self.hWaitStop) def SvcDoRun(self): import […]

用Python获取电池容量Windows

我正在考虑目前的电池容量和devise容量​​。 到目前为止,我可以使用的是使用Win32_Battery()类 ,它不提供我需要的所有信息(至less不是我的系统)。 我使用了纯Python的wmi库 。 另一方面,我发现这在Python中的作品,我怎么能检测到电脑是否在电池供电? ,但不幸的是它并没有提供有关容量的任何信息。 电池信息结构和电池状态结构似乎是完美的。 现在我知道我必须使用DeviceIoControl函数来完成这个工作,并且我发现这个C ++代码可以解释一点。 我宁愿只是简单地使用ctypes而不是pywin32提供的python win32api。 如果你有一个想法如何在Python中做到这一点,请让我知道! 提前致谢。

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界面。