我的任务是在将当前 powerpoint 保存为 WMV 之后获取电影帧。以下代码作为独立应用程序运行良好,但由于“CreateVideoStatus”始终为“PpMediaTaskStatus.ppMediaTaskStatusQueued”,因此它作为 Powerpoint 加载项运行时陷入了无限循环。我的猜测是因为 SaveAs WMV 操作非常耗时,所以操作系统降低了它的优先级,直到 CPU 被加载项本身释放。有人能帮帮我吗?提前致谢。
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
var app = this.Application;
var pres = app.Presentations;
var file = pres.Open("F:\\Src\\Culturelization\\animation2.pptx");
file.SaveAs("F:\\Src\\Culturelization\\SimpleDemo\\simple.wmv", PowerPoint.PpSaveAsFileType.ppSaveAsWMV, Office.MsoTriState.msoTrue);
Boolean isExporting = true;
do
{
Thread.Sleep(1000);
if (file.CreateVideoStatus == Microsoft.Office.Interop.PowerPoint.PpMediaTaskStatus.ppMediaTaskStatusFailed && file.CreateVideoStatus == Microsoft.Office.Interop.PowerPoint.PpMediaTaskStatus.ppMediaTaskStatusDone)
{
isExporting = false;
}
} while (isExporting);
}