我正在实现一个 Excel 接口。我正在使用 COM 直接从 C++ 自动化 Excel。我的大部分应用程序都可靠地工作。
但是,我无法检测到文件是否已在 Excel 中打开。如果它是打开的,那么我想通知用户在运行他们的模拟之前关闭它。
我没有使用 MFC、VB 或 .NET。我的解决方案必须适用于 Excel 版本 97 到 2010。如果我可以通过编程方式知道 Excel 的版本,则可以对不同的 Excel 版本使用不同的技术。
我在同一个文件夹中寻找一个名为“~$xxx”(其中“xxx”是原始文件名)的文件,以确定 Excel 是否创建了会话锁。但这种技术并不总是有效。
一个类似的问题是,一旦在我的程序中开始模拟,我想阻止用户以写入模式打开文件(只读模式可以)。