Sto lavorando a un progetto in cui è necessario utilizzare PowerPoint da C# .net. Inizialmente, ho sempre creato una singola istanza. A partire da oggi, mi piacerebbe avere più istanze in esecuzione. Lo faccio in questo modo:Impossibile creare più istanze di PowerPoint
Type powerpointType = Type.GetTypeFromProgID("PowerPoint.Application");
object instance1 = Activator.CreateInstance(powerpointType);
object instance2 = Activator.CreateInstance(powerpointType);
ma quando chiedo il manico di entrambi i casi, chiamando
hwnd = (int)powerpointType.GetProperty("HWND").GetValue(instance1, null);
tanto sono la stessa maniglia due volte. La mia conclusione è che l'applicazione viene avviata una sola volta e TaskManager conferma che: Solo un processo.
Come mai c'è una sola istanza di PowerPoint in esecuzione e come posso farlo funzionare?
L'app che sto scrivendo è (tra molte altre cose) per la presentazione di presentazioni PowerPoint. Se aggiungi una presentazione a una colonna (tipo di area di lavoro), quella colonna deve essere riempita con le anteprime della diapositiva del ppt. Ecco perché ho bisogno di PowerPoint. Dopo di ciò, si può presentare il ppt. Ciò avvia anche PowerPoint. Queste cose dovrebbero essere in grado di accadere allo stesso tempo e dovresti essere in grado di aprire un ppt e anche uscire da un'altra colonna con un ppt. – Excel20
Penso che sia necessario eseguire due istanze con utenti diversi o utilizzare PowerPoint da Office 2010 (beta) che dovrebbe funzionare con più finestre. –
@MikaelSvenson Powerpoint condivide 1 istanza, Word ed Excel non condividono 1 istanza. – Paul