在用IronPython编写一些测试脚本时,我想验证窗口是否显示。我有主应用程序的进程的pid,并希望获得与pid相关的窗口标题列表。
我试图避免使用win32api调用,比如FindWindowEx,因为(据我所知)您不能直接从IronPython访问win32api。有没有办法使用内置的.net类来做到这一点呢?我遇到的大多数东西都推荐使用win32api,如下所示。
.NET (C#): Getting child windows when you only have a process handle or PID?
更新:我找到了我想要做的事情的变通方法。请在下面回答。
发布于 2008-10-20 16:48:41
下面的文章展示了如何从IronPython间接访问win32api。它使用CSharpCodeProvider CompileAssemblyFromSource方法从提供的C#源代码字符串在内存中编译程序集。然后,IronPython可以导入该程序集。
Dynamically compiling C# from IronPython
发布于 2012-08-07 15:47:04
从IronPython 2.6开始支持ctypes模块。此模块提供与C兼容的数据类型,并允许调用DLL中的函数。快速示例:
import ctypes
buffer = ctypes.create_string_buffer(100)
ctypes.windll.kernel32.GetWindowsDirectoryA(buffer, len(buffer))
print buffer.value
发布于 2008-09-24 19:28:31
这就像问你能不能不下水就能游泳。如果您需要从windows获取信息,唯一的选择就是使用win32api。关于如何做到这一点,有很多例子可以找到。
如果您不喜欢此答案,请在您的问题中留下评论,我将删除此答案,因此您的问题将保留在未回答问题列表中。
https://stackoverflow.com/questions/127912
复制相似问题