C#窗体化软件预留COM接口供python调用,请提供实例演示
时间: 2023-11-28 10:06:23 浏览: 139
c#窗体的应用实例
5星 · 资源好评率100%
当然可以!以下是一个简单的示例,演示如何在C#窗体应用程序中预留COM接口供Python调用:
首先,创建一个C#窗体应用程序项目。在项目中添加一个窗体(Form)并在窗体上放置一个按钮(Button)。
在窗体代码中添加以下内容:
```csharp
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace COMInteropExample
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello from C#!");
}
[ComVisible(true)]
public string SayHello()
{
return "Hello from C#!";
}
}
}
```
在窗体设计器中双击按钮,将其点击事件绑定到`button1_Click`方法。
接下来,右击项目,选择“属性”,在属性窗口中找到“应用程序”选项卡。在“输出类型”下拉菜单中选择“Windows应用程序”。然后,在“常规”选项卡中找到“启动对象”并选择“Sub Main”。
在项目中添加一个新的类文件,命名为`Program.cs`,并将其内容更改为以下代码:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace COMInteropExample
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
}
```
现在,我们需要将该项目生成为COM可访问库。右击项目,选择“生成”->“生成COM可访问库”。
完成上述步骤后,生成的DLL文件将在输出文件夹中生成。
接下来,我们可以使用Python来调用这个COM接口。以下是一个示例Python代码:
```python
import win32com.client
# 创建COM对象
com_obj = win32com.client.Dispatch("COMInteropExample.MainForm")
# 调用COM接口方法
result = com_obj.SayHello()
print(result)
```
确保你已经安装了`pywin32`库,然后运行上述Python代码,你将看到从C#窗体应用程序中返回的消息。
这是一个简单的示例,演示了如何在C#窗体应用程序中预留COM接口供Python调用。你可以根据自己的需求进行扩展和修改。
阅读全文