Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
640to644
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
640to644
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Frage zu API Funktionen Sendmessage

Frage zu API Funktionen Sendmessage
28.07.2005 07:38:05
Sylvio
Guten Morgen liebes Forum,
ich hab mir mit den API Funktionen ne Fensterabfrage gebastelt.
nun zu meinem Problem VBA findet zwar das Fenster, aber
wenn ich mit SendMessage versuche das Fenster zu schließen dann geht das nicht
ich hab das fenster über API Getwindow und seinen entsprechenden Titel gefunden.
also hwnd ist bereits richtig gefüllt.
GetClassName funktioniert auch lReturn erhält Wert
Option Explicit
...
Declare

Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Const WM_SYSCOMMAND = &H112
Const SC_CLOSE = &HF060
Const LNULL = 0&

Sub Schließen ()
Dim lReturn As Long
lReturn = GetClassName(hwnd, lpClassName, 256)
lReturn = SendMessage(hwnd, WM_SYSCOMMAND, SC_CLOSE, LNULL)
End Sub

Er führt SendMessage aus und lReturn ist dann null aber das gefundene Fenster ist immer noch offen.
Wer kann helfen?
Danke Sylvio

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Frage zu API Funktionen Sendmessage
28.07.2005 11:05:23
bst
Hallo Sylvio,
vielleicht reagiert das Teil ja einfach nicht auf SC_CLOSE wie z.B. Notepad.
Versuch's vielleicht mal mit WM_CLOSE.
cu, Bernd
--
Option Explicit

Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
   (ByVal lpClassName As String, ByVal lpWindowName As String) As Long


Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
   (ByVal hwnd As Long, ByVal wMsg As Long, _
   ByVal wParam As Long, lParam As Any) As Long


Const WM_SYSCOMMAND = &H112
Const SC_CLOSE = &HF060
Const WM_CLOSE = &H10
Const LNULL = 0&

Sub Schließen()
   Dim lReturn As Long
   Dim hwnd As Long
   
   ' das geht
   hwnd = FindWindow("IEFrame", vbNullString)
   If hwnd Then lReturn = SendMessage(hwnd, WM_SYSCOMMAND, SC_CLOSE, LNULL)
   
   ' das nicht
   hwnd = FindWindow("Notepad", vbNullString)
   If hwnd Then lReturn = SendMessage(hwnd, WM_SYSCOMMAND, SC_CLOSE, LNULL)
   
   ' aber das wieder
   hwnd = FindWindow("Notepad", vbNullString)
   If hwnd Then lReturn = SendMessage(hwnd, WM_CLOSE, LNULL, LNULL)
End Sub

Anzeige
SUPER SO GEHTS DANKE DANKE BST o.w.t
28.07.2005 12:05:18
Sylvio

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige