Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1284to1288
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
Inhaltsverzeichnis

Offene Anwendungen erkennen

Offene Anwendungen erkennen
29.10.2012 20:03:04
Albert
Hallo Excel Experten,
ich habe diese Frage schon einmal ins Forum gestellt und auch einen Link für einen sehr umfangreichen Lösungsansatz bekommen = eine Art TaskManager in Excel. Kann ich jedoch nicht für meine Zwecke einsetzen.
Ich bin auf der Suche nach einem VBA Code, der erkennt, ob außer Excel auch andere Anwendungen offen sind, zumindest sollten der Explorer und ein offener Browser erkannt werden.
Ich habe eine Code, der eine zweite offene Exceldatei erkennt, ich schaffe es aber nicht, diesen so zu erweitern dass er auch andere offene Anwendungen erkennt.
Sub OAp()
Application.ScreenUpdating = False
Dim Wb As Workbook, Ap As Application
For Each Wb In Application.Workbooks
If Wb.Name  ThisWorkbook.Name Then MsgBox ("Zweite Exceldatei offen")
Next Wb
End Sub
Ich hoffe, irgend jemand von Euch hat eine sehr simple Lösung für mein Problem.
Danke, Albert

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Offene Anwendungen erkennen
30.10.2012 09:34:28
Nepumuk
Hallo,
so eventuell?
Option Explicit

Private Declare Function EnumWindows Lib "user32.dll" ( _
    ByVal lpEnumFunc As Long, _
    ByVal lParam As Long) As Boolean
Private Declare Function GetClassName Lib "user32.dll" Alias "GetClassNameA" ( _
    ByVal hwnd As Long, _
    ByVal lpClassName As String, _
    ByVal nMaxCount As Long) As Long

Private Const GC_CLASSNAME_EXPLORER = "CabinetWClass"
Private Const GC_CLASSNAME_INTERNETEXPLORER = "IEFrame"

Public Sub Start()
    Call EnumWindows(AddressOf WindowCallBack, ByVal 0&)
End Sub

Private Function WindowCallBack(ByVal lngHwnd As Long, ByVal lngParam As Long) As Boolean
    Dim strClassName As String * 256
    Dim lngReturn As Long
    lngReturn = GetClassName(lngHwnd, strClassName, 256)
    Select Case Left$(strClassName, lngReturn)
        Case GC_CLASSNAME_EXPLORER
            MsgBox "Ein Ordner ist geöffnet"
        Case GC_CLASSNAME_INTERNETEXPLORER
            MsgBox "Der Internetexplorer ist geöffnet"
    End Select
    WindowCallBack = True
End Function

Gruß
Nepumuk

Anzeige
AW: Offene Anwendungen erkennen
31.10.2012 21:59:40
Albert
Hallo Nepumuk,
das war genau das was ich gesucht habe. Funktioniert wunderbar, ich möchte das Ganze nur insoweit erweitern, dass auch Firefox erkannt wird. Wie muss ich Deinen Code erweitern, dass auch ein offener Firefox erkannt wird? Meine Veruche brachten kein Ergebnis, ich glaube es hängt mit der Variablendeklaration zusammen.
Private Const GC_CLASSNAME_FIREFOX = "?"
Vielleicht kannst Du mir da auch noch einen Tipp geben.
Auf jeden Fall, recht herzlichen Dank für Deine Unterstützung
Albert

AW: Offene Anwendungen erkennen
31.10.2012 23:13:34
Nepumuk
Hallo,
so:
Private Const GC_CLASSNAME_FIREFOX = "MozillaUIWindowClass"

Gruß
Nepumuk

Anzeige
AW: Offene Anwendungen - Danke!!!
01.11.2012 10:19:19
Albert
Hallo Nepumuk,
nochmals vielen herzlichen Dank für Deine Informationen. Damit war es mir möglich, ein Problem zu lösen dass schon monatelang akut war.
LG
Albert

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige