【IDL】C#调用IDL编写界面(含事件)的问题
最近有一位用户遇到一个问题。用C#调用IDL写的程序(有界面,有响应事件),但是在运行C#程序的时候,在IDL程序界面弹出的同时会继续执行C#下边的代码。
问题描述如下:
COM_IDL_connectLib.COM_IDL_connect oCom = new COM_IDL_connectLib.COM_IDL_connect();
oCom.CreateObject(0, 0, 0);
oCom.ExecuteString(".compile 'c:\\test_events.pro'");
oCom.ExecuteString("test_events");
//在test_events界面打开的同时会执行下边的代码
//我们想要的是在test_events事件响应完毕之后再继续下边的代码
MessageBox.Show("继续执行代码");
发扬直接发代码的光荣传统,附如下解决方法:
//读取注册表获取IDL安装路径
RegistryKey rsg = null;
rsg = Registry.LocalMachine.OpenSubKey("SOFTWARE\\ITT\\IDL\\8.0", true);
string IDLPath = "";
if (rsg.GetValue("Installdir") != null) //读取失败返回null
{
//初始化IDL80路径
IDLPath = rsg.GetValue("InstallDir").ToString() + @"IDL80\bin\bin.x86\idlrt.exe";
}
else
{
MessageBox.Show("未找到IDL文件");
return;
}
//新建一个进程
Process myProcess = new Process();
string SavFilename = @"D:\IDLWorkspace80\test\test.sav";
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(IDLPath, SavFilename);
myProcess.StartInfo = myProcessStartInfo;
myProcess.Start();
//等待myProcess退出
myProcess.WaitForExit();
//继续执行下面的代码
MessageBox.Show("继续执行代码");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?