Entwickler-Ecke

Windows API - HWND-Handle -> Namen des Fensters rausfinden


Killi - Fr 20.06.03 21:17
Titel: HWND-Handle -> Namen des Fensters rausfinden
Hi!

Wie kann ich den Namen des Fensters rausfinden, das zuletzt geöffnet wurde?
Will gewisse Fenster damit blocken


Delete - Fr 20.06.03 21:24

Das Handle (HWND) hast du? Dann hilft dir die API-Funktion GetWindowText vielleicht weiter. Siehe Win32-Hilfe, bzw. MSDN oder PSDK.


Killi - Sa 21.06.03 12:15

Hi!

Nee, hab ich nicht...wie krieg ich das?


Killi - Sa 21.06.03 12:21

Hab das hier gefunden:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
Syntax

HWND FindWindow(          LPCTSTR lpClassName,
    LPCTSTR lpWindowName
);
Parameters

lpClassName
[in] Pointer to a null-terminated string that specifies the class name or a class atom created by a previous call to the RegisterClass or RegisterClassEx function. The atom must be in the low-order word of lpClassName; the high-order word must be zero. 
If lpClassName points to a string, it specifies the window class name. The class name can be any name registered with RegisterClass or RegisterClassEx, or any of the predefined control-class names. 

If lpClassName is NULL, it finds any window whose title matches the lpWindowName parameter. 

lpWindowName
[in] Pointer to a null-terminated string that specifies the window name (the window's title). If this parameter is NULL, all window names match. 
Return Value

If the function succeeds, the return value is a handle to the window that has the specified class name and window name.

Was fang ich jetzt damit an? Das sagt mir dass ich über die Funktion das HWND bekomme - das ich ja brauche...aber ich weiß die 2 Parameter doch nicht! Kann mans nicht so machen dass man das ZULETZT aufgerufene Fenster nimmt?


Killi - Sa 21.06.03 12:41

Auf http://www.swissdelphicenter.ch/de/showcode.php?id=327 hab ich was gutes gefunden - könnte helfen...allerdings tut bei mir der Code nicht, der aufzählt welche Fenster grade offen sind und der Befehl "GetWindowByTitle" kennt er auch nicht...sch...!Das wär wohl das einfachste - man sucht nach dem Titel, bekommt das hwnd und versteckt oder schließt es dann......!?
Kann mir jemand durch diesen code bei SwissDelphiCenter helfen?


Delete - So 22.06.03 08:48

Killi hat folgendes geschrieben:
[...] und der Befehl "GetWindowByTitle" kennt er auch nicht...sch...!

Diesen Befehl gibt es im ganzen Beitrag von SwissDelphiCenter nicht. Wahrscheinlich meinst du
SwissDelphiCenter hat folgendes geschrieben:

Delphi-Quelltext
1:
function FindWindowByTitle(WindowTitle: string): Hwnd;                    


Killi hat folgendes geschrieben:
Das wär wohl das einfachste - man sucht nach dem Titel, bekommt das hwnd und versteckt oder schließt es dann......!?

Es ist alles da, was du brauchst. Ich vermute mal (ohne dich damit beleidigen zu wollen), dass du einen Teil des Codes einfach nur falsch bzw. leicht fehlerhaft übernommen hast.

Ich habe den SDC-Beitrag nur überflogen und nicht ausprobiert, aber ich gehe mal optimistisch davon aus, dass der Code funktioniert.


Killi - So 22.06.03 10:57

Sch...timmt :wink: :oops:
nein, beim Button-Klick steht auch mal FindWindowsByTitle - da hab ich glaub ich die Funktion nicht mehr dringehabt....DESWEGEN hatters nicht gefunden *selbereinereinhau*
Aber wie weiß ich denn jetzt den WindowsTitle des Fensters, das kommt wenn man bei Win98/2000 Strg/Alt/Entf drückt?
Geht das überhaupt was ich da vor habe? Werden die Programme nicht angehalten wenn ich diese tastenkombination drücke, sodass ich das Fenster nachher gar nicht mehr schließen kann?!