我已经开发了一个将当前打开的演示文稿转换为.wmv文件的PowerPoint插件。
这一切都运行得很好。当演示文稿正在转换时,我可以在PowerPoint的底部看到一个进度条和一个红色的X,可以按下它来取消转换过程。
有没有办法以编程方式调用这个cancel按钮?
这是我用来调用它并等待它完成的代码,但我也希望能够在它正在进行的时候取消它。
private void frmUpload_Load(object sender, EventArgs e)
{
try
{
progressBarUpload.Value = 0;
string exportName = "video_of_presentation";
string exportPath = @"C:\Windows\Temp\{0}.wmv";
// Export the currently open presentation
Microsoft.Office.Interop.PowerPoint.Application ppApplication = null;
ppApplication = new Microsoft.Office.Interop.PowerPoint.Application();
ppApplication.Activate();
ppApplication.ActivePresentation.SaveAs(String.Format(exportPath, exportName), Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsWMV);
lblUploadStatus.Text = "Status: Converting …";
new Thread(() =>
{
Thread.CurrentThread.IsBackground = true;
/* run your code here */
do
{
System.Threading.Thread.Sleep(500);
}
while (ppApplication.ActivePresentation.CreateVideoStatus != Microsoft.Office.Interop.PowerPoint.PpMediaTaskStatus.ppMediaTaskStatusDone);
backgroundWorker.RunWorkerAsync();
SetControlPropertyValue(lblUploadStatus, "text", "Status: Uploading …");
}).Start();
}
catch
{
lblUploadStatus.Text = "Status: Error Converting File.";
}
}任何帮助都将不胜感激。
Trev
发布于 2013-08-08 16:37:38
根据微软的说法,这是不可能的:(
线程在这里:
http://social.msdn.microsoft.com/Forums/vstudio/en-US/9308ca45-ec8e-42df-8a5f-a150468a6213/cancel-microsoftofficeinteroppowerpointppsaveasfiletype
Trev
https://stackoverflow.com/questions/18084957
复制相似问题