c# - 在 C# 中,打开任意应用程序

标签 c# com ms-word ole ole-automation

相关问题[stackoverflow] here .

我正在尝试执行上述操作,但我想更进一步。我想使用文件类型的默认编辑器打开任意文件。从那时起,我想让我的用户像往常一样与文件交互,或者继续在我的应用程序中工作。扩展是用户完成编辑后发生的事情。有没有一种方法可以从外部应用程序捕获关闭(最好是保存)事件并将其用作触发器来执行其他操作?就我而言,跟踪外部应用程序的关闭就可以了。

我可以在特定情况下执行此操作。例如,我可以从我的应用程序打开一个 Word 实例并跟踪我的应用程序感兴趣的事件。但是,我想将我的应用程序与 Word 分离。我想允许我的用户使用他们选择的任何文档编辑器,然后在幕后单独管理正在编辑的文件的存储。

最佳答案

您可以按照与引用问题类似的方式执行此操作,但语法略有不同:

System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo = 
    new System.Diagnostics.ProcessStartInfo("C:\...\...\myfile.html");
process.Start();
process.WaitForExit(); // this line is the key difference

WaitForExit() 调用将阻塞,直到另一个应用程序关闭。您可以在单独的线程中使用此代码,以便用户可以同时继续使用您的应用程序。

关于c# - 在 C# 中,打开任意应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1419163/

相关文章:

c++ - ->Release() 是在 COM 对象的析构函数上调用的吗?

vba - 变体数据类型将值 0 更改为空或空白

hadoop - Microsoft Word 二进制文件如何存储在 Hive 中?

c# - 如何使用新的 WCF REST HttpClient API 设置 GoogleLogin 请求的授权 header

c# - 帮助理解埃拉托色尼筛法的实现

C# 字互操作表形状位置

c# - 在 Xamarin.Forms 中的分组 ListView 中搜索

c++ - 将 VARIANT 转换为字节,反之亦然?

windows - 为什么 COM+ 忽略单元线程模型?

excel - 将 Excel 图表复制到 Word 的 VBA 脚本在更高版本的 Word 中不起作用