Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用IronPython中的win32api_C#_Winapi_Ironpython - Fatal编程技术网

C# 如何使用IronPython中的win32api

C# 如何使用IronPython中的win32api,c#,winapi,ironpython,C#,Winapi,Ironpython,在用IronPython编写一些测试脚本时,我想验证是否显示窗口。我有主应用程序进程的pid,并希望获得与pid相关的窗口标题列表 我试图避免使用win32api调用,比如FindWindowEx,因为(据我所知)您不能直接从IronPython访问win32api。有没有办法使用内置的.net类来实现这一点?我遇到的大多数东西都建议使用win32api,如下所示 更新:我找到了一个工作来解决我想做的事情。回答如下 这就像问你能不能不到水里游泳一样。如果您需要来自windows的信息,唯一的选

在用IronPython编写一些测试脚本时,我想验证是否显示窗口。我有主应用程序进程的pid,并希望获得与pid相关的窗口标题列表

我试图避免使用win32api调用,比如FindWindowEx,因为(据我所知)您不能直接从IronPython访问win32api。有没有办法使用内置的.net类来实现这一点?我遇到的大多数东西都建议使用win32api,如下所示


更新:我找到了一个工作来解决我想做的事情。回答如下

这就像问你能不能不到水里游泳一样。如果您需要来自windows的信息,唯一的选择是使用win32api。关于如何做到这一点,有很多例子可以找到


如果您不喜欢此答案,请在问题中留下评论,我将删除此答案,因此您的问题将保留在未回答问题列表中。

下面的文章介绍如何从IronPython间接访问win32api。它使用CSharpCodeProvider CompileAsemblyFromSource方法从提供的C#源代码字符串编译内存中的程序集。然后,IronPython可以导入程序集

从IronPython 2.6开始,支持该模块。此模块提供与C兼容的数据类型,并允许在DLL中调用函数。快速示例:

import ctypes
buffer = ctypes.create_string_buffer(100)
ctypes.windll.kernel32.GetWindowsDirectoryA(buffer, len(buffer))
print buffer.value