如何在IronPython中获取Window或Form句柄以传递给C#代码

时间:2014-07-29 22:07:26

标签: .net windows camera ironpython

我正在尝试使用IronPython的IDS uEye USB摄像头和IDS提供的.net API。我似乎正在寻找并初始化相机并获得实时视频流。问题在于显示图像。 IDS net api需要窗口的句柄(intptr?)。我创建了一个IronPython表单(System.Windows.Forms.Form),它定义为IronPython.NewTypes.System.Windows.Form.Form_4 $ 4(不管怎样!)。但是,我还没弄清楚如何获得该表单的句柄。如果我只是使用:

`MyForm类(表格):      def init (个体经营)        self.height = 200        self.width = 200

并将表单创建为:

`displayForm = MyForm()

我原以为变量形式实际上是GUI结构的指针或句柄。它似乎不是这样,就像我试图将它传递给uEye api一样,

`cam.Display.Render(memID, displayForm, s32Mode)

其中memID和s32Mode只是整数值,我得到错误:

`Type Error: expected IntPtr got Form_4$4

我试过了:

`DisplayHandle = clr.Reference[IntPtr](displayForm)

这给了我同样错误的错误:

我迷路了。我用Google搜索了我能想到的一切,但没有找到答案。有人可以帮帮我,这样我就可以显示这台摄像机的视频了!

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该可以使用表单的Handle属性。这是Windows句柄(HWND)。

displayForm.Handle