在c#表单中嵌入第三方AIR程序

时间:2011-02-09 08:24:32

标签: c# air widget

我一直在寻找一种方法来嵌入AIR独立 - 单一形式的空中程序在一个可视化的c#表单中。

我不需要与它进行任何沟通,我只需要将它“卡在”我的表格区域中,以便它随我移动并在我这样做时调整大小。 (即:我的表单需要控制其处理程序,对吗?)

我尝试使用user32.dll lib中的SetParent,但它无法使用它(虽然它适用于notepad.exe,因此代码是正确的。)

重复:我不想拥有互动性,我只想在那里“作为一个小部件”。

谢谢。

更新:我知道这听起来很奇怪,但有问题的AIR应用程序是一个真正的.exe文件,而不是swf。 (事实上​​,这对我来说很困惑,但我很确定它是这样的,因为它说你第一次安装它时需要安装空气),我在谈论这个应用程序:{{3} }

更新2:我尝试使用user32.dll SetParent函数,但收到1400错误:INVALID_WINDOW_HANDLER,虽然通过调用process.MainWindowsHandle检索处理程序,我再说一遍,此代码适用于记事本:

        Process notePad = Process.Start("C:\\Windows\\System32\\notepad.exe");
        notePad.WaitForInputIdle();
        this.appNotePad = notePad.MainWindowHandle;
        SetWindowPos(this.appNotePad, -1, 0, 0, panelNotepad.Size.Width, panelNotepad.Height, SWP_NOMOVE);
        SetParent(this.appNotePad, panelNotepad.Handle);
        SetWindowLong(this.appNotePad, GWL_STYLE, WS_VISIBLE);

1 个答案:

答案 0 :(得分:0)

使用WebBrowserObject可能是一个解决方案。这是在表单中嵌入Internet Explorer,因此,您可以将html页面设置为默认页面并显示您的Adobe AIR应用程序。

我会检查是否有另一种方法,但如果您不需要将表单应用程序与AIR通信一起,这是可以接受的。