Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1164to1168
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

Event wenn von Excel in ein anderes Programm gew. | Herbers Excel-Forum

Event wenn von Excel in ein anderes Programm gew.
14.07.2010 16:26:46
Peter

Guten Tag
Kann ich das kurzfristige Verlassen der Applikation Excel mit einem Event abfangen, das heisst, dass vorgängig eine Aktion ausgeführt wird?
Wenn ja, wie heisst das Event?
Danke für eine Antwort.
Gruss, Peter

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

Betreff
Datum
Anwender
Anzeige
AW: Event wenn von Excel in ein anderes Programm gew.
14.07.2010 17:42:34
Nepumuk
Hallo Peter,
so etwas gibt es nicht. Du kannst aber prüfen, ob das Handle des aktiven Fensters das selbe ist wie deine Application. Das ganze muss dann in einer Zeitschleife z.B. alle 100 Millisekunden überprüft werden. Hier mal das Grundgerüst:
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call StopTimer
End Sub

Private Sub Workbook_Open()
    Call StartTimer
End Sub

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit
Option Private Module

Private Declare Function SetTimer Lib "user32.dll" ( _
    ByVal hWnd As Long, _
    ByVal nIDEvent As Long, _
    ByVal uElapse As Long, _
    ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32.dll" ( _
    ByVal hWnd As Long, _
    ByVal nIDEvent As Long) As Long
Private Declare Function GetActiveWindow Lib "user32.dll" () As Long

Private lblnLostFocus As Boolean

Public Sub StartTimer()
    Call SetTimer(Application.hWnd, 0, 100, AddressOf TimerEvent) '100 Millisekunden
End Sub

Public Sub StopTimer()
    Call KillTimer(Application.hWnd, 0)
End Sub

Private Sub TimerEvent(ByVal hWnd As Long, ByVal nIDEvent As Long, _
        ByVal uElapse As Long, ByVal lpTimerFunc As Long)

    On Error Resume Next
    If GetActiveWindow <> Application.hWnd Then
        If Not lblnLostFocus Then
            lblnLostFocus = True
            
            'Hier kommt dein Code
            
        End If
    Else
        lblnLostFocus = False
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Event wenn von Excel in ein anderes Programm gew.
15.07.2010 09:04:57
Peter
Hallo Nepumuk
Vielen Dank!
Was hat das eigentlich für eine Belastung auf das System resp. auf die Applikaiton Excel, wenn das im Hintergrund immer läuft?
Gruss, Peter
AW: Event wenn von Excel in ein anderes Programm gew.
15.07.2010 09:58:19
Nepumuk
Hallo Peter,
die Belastung ist minimal da die Prozedur an die DLL weitergegeben wird. Das setzen einer boolschen Variablen auf False sind auch nur 2 Bits welche in den Arbeitsspeicher geschrieben werden. Das wird eine maximale Grundlast von 1-2% des Prozessors ausmachen.
Gruß
Nepumuk
AW: Vielen Dank!! owT
15.07.2010 10:02:22
Peter

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige