Instanz von Excel-Anwendung mit C # von Handle abrufen

8

Ich habe eine einfache c # -Anwendung, die einige Werte in Excel-Bereichen eines bestimmten Arbeitsblatts schreiben muss. Ich erstelle eine Instanz der Excel-Anwendung, wenn sie nicht existiert, aber falls vorhanden, möchte ich sie aktivieren und eine Instanz nehmen, wenn sie in meinem Code verwendet werden soll.

Ich verwende diesen Code, um eine neue Anwendung zu erstellen:

%Vor%

Um das Handle des aktiven Excel-Fensters zu bekommen, benutze ich diese API

%Vor%

Wie kann ich eine Instanz der Excel-Anwendung durch ein Handle bekommen?

%Vor%     
Babba 13.07.2009, 10:35
quelle

3 Antworten

18

Verwenden Sie den folgenden Code, um die erste ausgeführte Instanz von Excel abzurufen:

%Vor%

Beispiel

%Vor%     
James 13.07.2009, 10:57
quelle
13

Möglicherweise wird mehr als eine Excel-Instanz ausgeführt.

GetActiveObject (...) sucht in der Running Object Table (ROT) und gibt Ihnen die letzte Excel-Instanz, die geöffnet wurde - nicht unbedingt die, die mit dem Fensterhandle übereinstimmt, das Sie haben.

Sie suchen nach AccessibleObjectFromWindow (..). Der Beitrag von Andrew Whitechapel verknüpft mit in der anderen Antwort zeigt, wie diese Funktion verwendet wird.

Ein weiterer Link - Ссылка .

    
Govert 23.03.2011 10:26
quelle
2

Sie können Marshal.GetActiveObject verwenden. Weitere Informationen finden Sie in diesem Blogpost:

Ссылка

    
Shiraz Bhaiji 13.07.2009 11:01
quelle

Tags und Links