Jupp.
function FensterText(Wnd: HWND): String;
Wo kommt denn Wnd her und was ist darin?
hier raus:
Delphi-Quellcode:
function PHandle_to_WHandle(
const PHandle: Cardinal): HWND;
function EnumWindowsProc(hWnd: HWND; lParam: LPARAM): BOOL;
stdcall;
begin
TList(lParam).Add(Pointer(hWnd));
Result := True;
end;
var
i : Integer;
List : TList;
ProcessId : DWORD;
begin
//Rückgabewert vordefinieren
Result := 0;
If PHandle <= 0
then
exit;
//Liste erzeugen
List := TList.Create;
try
If EnumWindows(@EnumWindowsProc, Integer(List))
then
for i := 0
to Pred(List.Count)
do
begin
If GetWindowThreadProcessId(Integer(List.Items[i]), ProcessId) > 0
then
//Wenn die Prozess-ID gefunden wurde, dann das Handle aus der
//Liste zurückgeben und die Schleife verlassen
If GetProcessId(PHandle) = ProcessId
then
begin
Result := Integer(List.Items[i]);
break;
end;
end;
finally
//Liste löschen und freigeben
FreeAndNil(List);
end;
end;
Delphi-Quellcode:
//prüfen ob ein Fenster-Handle übergeben wurde
If Wnd = 0
then
exit;
//Handle der Application zu dem Fenster auslesen
AWnd := FindWindowEx(0, Wnd, '
TApplication',
nil);
Da Wnd nie 0 ist, kann FindWindowEx niemals das erste TApplication zurückgeben.
Ist das jetzt gut oder schlecht?
Muss ich also null möglich machen oder nicht
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<