Anzeige
Archiv - Navigation
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
972to976
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel-Instanzen

Excel-Instanzen
28.04.2008 03:45:55
Sabine
Hallo zusammen,
ich bin verzweifelt auf der Suche nach einer Möglichkeit zu prüfen, ob außer der aktuellen Excel-Instanz noch weitere Instanzen geöffnet sind.
Sind weitere Instanzen geöffnet, soll der Anwender solange zum Schließen aufgefordert werden, bis alle Instanzen mit Ausnahme der aktuellen Instanz beendet sind. Damit der AW die Instanz schließen kann, soll sie sichtbar gemacht und aktiviert werden.
Mit GetObject geht das nicht, weil der Zeiger damit immer auf die zuerst geöffnete Instanz zeigt.
Hat jemand eine Idee?
Ach ja, ich brauch das für eine Update-Funktion eines AddIns - da müssen ja alle Instanzen bis auf die Aktuelle geschlossen sein.
LG
Sabine

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel-Instanzen
28.04.2008 07:27:30
Sabine
Hi Thorsten,
danke, den Eintrag kenne ich (hab ich auch so gesucht).
Problem ist aber das hier: "Wenn du die die aber per Makro geändert hast (ActiveWindow.Caption = "IRGENDWAS"), dann hast du schlechte Karten." Es sind Tools im Einsatz, die den Anwendungstitel individuell verändern und ich hab auf diese Tools keinen Einfluss.
Lg
Sabine

Anzeige
AW: Excel-Instanzen
28.04.2008 07:48:33
Oberschlumpf
Hi Sabine
Und wenn du den Anwender dazu "zwingst", alle anderen Excel-Mappen zu schließen, sollte auch nur eine schon geöffnet sein, bevor er "deine" öffnet?
Dieser Workaround umfasst aber auch alle Excel-Dateien in "deiner" Excel-Instanz.
Oder kann es sein, dass gewisse Dateien inklusive deiner in der selben Instanz geöffnet sein müssen?
Dann hilft meine Idee leider auch nicht.
Oder noch ein anderer Vorschlag.
Vielleicht ist es ja möglich, mit Hilfe des Codes aus der Google-Suche das Ausschlussverfahren bei den Instanzen direkt anzuwenden.
Will sagen...
...du kennst ja die Caption von "deiner" Instanz.
Nun könntest du die Captions aller Instanzen abfragen. Und wenn mehr als eine Caption vorhanden ist, dann kannst du den Anwender auch auffordern, diese zu schließen.
Hilft das denn?
Ciao
Thorsten

Anzeige
AW: Excel-Instanzen
28.04.2008 18:30:00
Sabine
Hallo Thorsten,
danke Dir, hilft leider nicht, denn ich weiß nicht welche Modifikationen es im Caption alle gibt, da es zu variabel ist und ich darauf keinen Einfluss habe.
LG
Sabine!

AW: Excel-Instanzen
28.04.2008 16:38:49
Roland
Hallo Sabine,
versuch es mal so (in ein allgemeines Modul):
Option Explicit

Public Function ReadProcessData(ByVal Prozess As String) As Long
Dim objWMIService As Object, colProcesses As Object, sinProcess As Object
Set objWMIService = GetObject("winmgmts:")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")
ReadProcessData = 0
For Each sinProcess In colProcesses
With sinProcess
If .Name = Prozess Then ReadProcessData = ReadProcessData + 1
End With
Next
Set objWMIService = Nothing
Set colProcesses = Nothing
End Function


Sub test()
Dim l As Long
l = ReadProcessData("EXCEL.EXE")
If l > 1 Then
MsgBox "Bitte vor dem Update erst alle anderen Excel-Anwendungen schließen" & _
vbLf & "(z.Zt. noch " & l - 1 & " weitere Instanzen offen!)", 16
Exit Sub
End If
'### weiteren Code
End Sub


Rückmeldung wäre nett ;-)
Gruß aus dem sonnigen Berlin
Roland Hochhäuser

Anzeige
AW: Excel-Instanzen
28.04.2008 18:27:00
Sabine
Hallo Roland,
das ist ein klasse Ansatz! Danke! Habe es noch ein wenig verfeinert und gleich nur Excel-Instanzen gesucht.
Gibt es auch eine Möglichkeit die offene Instanz zu aktivieren?
LG
Sabine

AW: Excel-Instanzen
28.04.2008 20:03:00
Roland
Hallo Sabine,
m.E. nein, Du kannst den Prozess höchstens mit terminate ohne Speichermöglichkeit und Rückfrage abschiessen, wozu ich nicht raten kann (im Zweifel erwischst du ungespeicherte Mappen und auch deine eigene Updateroutine); dazu mehr: http://msdn2.microsoft.com/en-us/library/ms811550.wmichart(en-us,MSDN.10).gif
Für Deine Aufgabenstellung müsste der vorhandene Ansatz auch ausreichen; Du kannst doch jetzt weiterproggen nach dem Schema "mehr als eine Instanz? dann kein Update" und die User zur Mitarbeit zwingen, was m.E. das sicherste ist.
Apropos Aufgabenstellung: Bist Du Dir wirklich sicher, dass Dich nur "Excel-Fremdinstanzen" stören oder nicht vielleicht auch in der "eigenen" Instanz geöffnete Mappen (z.B. mit laufenden Makros oder geöffneten Dialogfeldern)?

Roland Hochhäuser

Anzeige
AW: Excel-Instanzen
28.04.2008 23:48:23
Sabine
Hallo Roland,
okay, danke.
Schwierig wird es halt dann, wenn irgendwelche Instanzen mit app.visible = false laufen, da bleibt dann nur der TaskManager. :(
Die "Störenfriede" in der eigenen Instanz habe ich schon durchgeackert.
LG
Sabine

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige