PowerPoint.Application PowerPoint_App;
PowerPoint_App = new PowerPoint.ApplicationClass();
PowerPoint_App.DisplayAlerts = PowerPoint.PpAlertLevel.ppAlertsNone;
PowerPoint.Presentation presentation;
presentation = null;
try
{
PowerPoint_App.Visible = MsoTriState.msoTrue;
presentation = PowerPoint_App.Presentations.Open(strPptFilePath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);
PowerPoint.Slide tempSlide = null;
int totalSlides = presentation.Slides.Count;
int slideNo = 0;
I am getting the below exception on PowerPoint_App.Presentations.Open
code.
Exception Message: The message filter indicated that the application is busy. (Exception from HRESULT: 0x8001010A (RPC_E_SERVERCALL_RETRYLATER))
I did not received this error previously on this block of code. Everything was working perfectly before. Can anyone help?
I ended up removing:
PowerPoint_App.Visible = MsoTriState.msoTrue;
And it worked...!!!
I'm working through a similar problem (controlling Excel via PowerShell), and wanted to add that -- in a way I cannot begin to explain -- the analogue to @Milind Anantwar's suggestion caused my script to start working.
More details, in case they help:
In my case, everything worked fine when run locally. I started seeing the
Application is busy
exception only when I moved to executing via an Azure Hybrid Worker Runner.
With reference to the following snippet, I was seeing the exception after line 2, but removing line 2 "fixed" the problem:
$excel = New-Object -ComObject Excel.Application
$excel.visible = $SHOW_EXCEL
$workbook = $excel.Workbooks.Open($_excel_file)
I saw the exception when $SHOW_EXCEL
was set to $false
.
I just want to say that Nikolay's advice was 100% spot on for me. Although my problem was with code that interacted with Excel rather than PowerPoint, I believe it'll apply all the same.
Suddenly and seemingly out of nowhere a service that had been running flawlessly for years without issues started encountering this error. There weren't any recent code changes that could've been suspect, either.
I logged into the server via Remote Desktop using credentials for the service account that runs the automated service in question and as soon as I manually launched Excel, I was presented with a pop-up with some unrelated news I didn't care about. I clicked OK on this, closed Excel, logged out, and restarted the service and voila! No more issues.
Long story short, the root cause of the problem (for me) was that Excel was trying to present a pop-up and continued code execution couldn't continue because there wasn't a user to acknowledge the pop-up. Acknowledge it and your issue will go away if you have the same issue I did.
Check your Task Manager; you may have an orphaned application instance from a debugging session. Kill it and try again. That has been the case for me before.
For me, I had to wait for Excel to be "ready" after opening up a workbook. The below fixed the issue:
xlApp = new Excel.Application();
xlBook = xlApp.Workbooks.Open(workbook);
// wait for the workbook to open
while (!xlApp.Ready)
{
Thread.Sleep(500);
}
User contributions licensed under CC BY-SA 3.0