2016-11-15 6 views
0

Ich verwende derzeit ein ActiveX-Server-Objekt (mit dem Namen PP im Code), um eine Powerpoint-Präsentation (PRES) von MATLAB zu schreiben. Am Ende schließe ich die Präsentation. Dies führt dazu, dass Powerpoint die Präsentation schließt, was für eine Überraschung, aber ein Powerpoint-Fenster geöffnet bleibt. Wenn ich das PP-Objekt schließe, sind alle momentan geöffneten Powerpoints, nicht nur die, die ich geschrieben habe, geschlossen. Das Problem ist, dass alle Powerpoint-Fenster einen Prozess teilen und PP.Quit() diesen Prozess beendet. Gibt es eine Möglichkeit, ein bestimmtes Powerpoint-Fenster zu schließen, ohne den Powerpoint-Prozess zu beenden?Schließen Powerpoint-Fenster mit MATLAB

PP = actxserver('PowerPoint.Application'); 
do stuff 
pres = PP.Presentations.Open(fileName); 
pres.Close(); %<- Closes the presentation, but an empty powerpoint window is still open. 
PP.Quit(); % <- That is the problem 

Antwort

1

Sie können dies versuchen:

PP.Quit; 
PP.delete; 

statt:

pres.Close(); %<- Closes the presentation, but an empty powerpoint window is still open. 
PP.Quit(); % <- That is the problem 
+0

Danke für die Antwort. Das Problem ist, dass ich immer noch alle geöffneten Powerpoint-Fenster als PP.Quit schließe, um den Powerpoint Singleton zu beenden. Deine Antwort wird nicht für mich funktionieren. – littleHue

+0

Seltsam. Ich benutze es in ähnlicher Weise mit Microsoft Excel und es schließt nicht alle anderen Fenster. Ich sehe auch, dass Sie Ihre Öffnungsfunktion einer Variablen zuweisen – Romano

+0

PP = actxserver ('PowerPoint.Application'); Do Zeug PP.Presentations.Open (fileName); PP.Quit; PP.Delete; – Romano