Articles of pywin32

Python,获取当前login用户的Windows特殊文件夹

我如何从我的Python脚本中获取Windows文件夹,如My Documents,Desktop等? 我需要win32扩展吗? 它必须在Windows 2000到Windows 7上工作。

在Python中接收WM_COPYDATA

我试图从Python读取WM_COPYDATA消息一些应用程序(我试图与Spotify)发送到WindowsLiveMessenger更新“我在听什么…”的短语。 从我所能find的, WM_COPYDATA消息进来COPYDATASTRUCT具有以下结构: 在我们的情况下,dwData 0x547,以便它访问现在正在侦听function cbData与接收的string的长度 带有指向string本身的指针的lpData可能包含Unicode字符 该string应具有以下格式: \0Music\0status\0format\0song\0artist\0album\0由ListeningNowTracker 我们在WM_COPYDATA事件中收到的是一个包含COPYDATASTRUCT lParam指针。 我开始修改pywin32函数,我记得他们不接受过去经验的Unicode字符,然后我切换到ctypes。 尽pipe这对Python来说已经是一个新的世界了,但我用POINTER()试了一下,所有的东西都是未知对象,或者是访问违规。 我认为代码应该创build一个COPYDATASTRUCT : class CopyDataStruct(Structure): _fields_ = [('dwData', c_int), ('cbData', c_int), ('lpData', c_void_p)] 然后使lParam成为指向该结构的指针,从ctypes.string_at(lpData,cbData)获取string指针,最后用ctypes.string_at(lpData,cbData)获取string。 有小费吗? 更新1 为了这个目的, WM_COPYDATA事件被一个用win32gui构build的隐藏窗口接收。 copydata事件连接到一个名为OnCopyData的函数,这是它的头部: def OnCopyData(self, hwnd, msg, wparam, lparam): 与Spy ++消息日志相比,函数提供的值是正确的。 更新2 这应该是接近我想要的,但给出一个空指针错误。 class CopyDataStruct(ctypes.Structure): _fields_ = [('dwData', c_int), ('cbData', c_int), ('lpData', c_wchar_p)] PCOPYDATASTRUCT = ctypes.POINTER(CopyDataStruct) pCDS […]

如何进一步debugging(win7 64bit,py2.7)的SendKeysCtypes?

我试图让SendKeysCtypes工作在py2.7和win7 64bit 。 这是src 问题: 运行SendKeysCtypes.py并没有任何反应。 testing应该打开记事本并写一些文字。 问题代码是这样的: def GetInput(self): "Build the INPUT structure for the action" actions = 1 # if both up and down if self.up and self.down: actions = 2 inputs = (INPUT * actions)() vk, scan, flags = self._get_key_info() for inp in inputs: inp.type = INPUT_KEYBOARD inp._.ki.wVk = vk inp._.ki.wScan = […]

在Windows 7上GetWindowRect太小

我试图解决的实际问题是,我想自动找出窗口边缘的大小。 如果你能find更好的办法,请用一切办法来回答,而不是这个。 为此,我决定截取testing窗口并测量边距。 这很简单,因为我认为没有利润率会是明亮的粉红色,但我承认这是一个黑客。 我使用GetWindowRect ( py )来获取边界框, PIL抓取屏幕截图并剪裁到边界框。 问题是,当作物正常运行时,边界框不准确 。 Windows 7“剪切工具”获得正确的尺寸 。 我怎么能这样做?

与Python的Windows上的os.path.islink

在使用Python 2.7的Windows 7上,如何检测path是否是符号链接? 这不工作os.path.islink() ,它说,如果返回false或不支持和我提供的path肯定是一个符号链接,所以我假设它不支持在Windows上? 我能做什么?

Windows XP – 在Python中以编程方式静音/取消静音

我的机器有两个audioinput:用于游戏的麦克风,以及用于吉他的线。 当使用一个重要的是另一个被静音以消除嘶嘶声/静态,所以我希望写一个小脚本,将切换哪一个被静音(这是相当不方便点击托盘图标,切换到我的input设备,静音并取消静音)。 我想也许我可以用pywin32来做到这一点,但是我能find的 所有东西似乎都是设置输出音量而不是input,而我对win32不够熟悉,甚至不知道在哪里寻找更好的信息。 有人能指出我的方向吗?

在Python中获取其他正在运行的进程窗口大小

这并不像听起来那么恶毒,我想获得当前窗口的大小,而不是看它们的内容。 目的是要弄清楚,如果其他窗口全屏显示,那么我也应该这样启动。 或者如果所有其他进程只有800×600,尽pipe有一个巨大的决议,那么这可能是用户想要的。 为什么让他们浪费时间和精力重新调整我的窗口,以匹配所有其他人呢? 我主要是一个Windows devoloper,但是如果有跨平台的方式来做到这一点的话,它不会让我感到不安。

哪些是与已经打开的本地操作系统对话框,如使用Python(保存AS)进行交互的最佳方式?

是否有任何有效的方法使用任何Python模块,如PyWind32与现有的Native OS对话框,如“另存为”框交互? 我试图search谷歌,但没有帮助。 编辑: 1:当用户在Web应用程序上单击“另存为”对话框时,“另存为”对话框被触发。 2:任何build议,欢迎处理任何本地操作系统对话框已经触发使用Python。(不需要特定于Selenium webdriver,我正在寻找一个通用的build议。) (当我发布这个问题时,我认为通过“与对话框交互”将暗示它是现有的,就好像我能够创build一个对话框一样,那么当然可以和我的程序控制下的交互。在阅读了前两个答案之后,我意识到自己并没有明确的说法,这就是为什么编辑) 谢谢

在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