..vieleicht hab ich dich mißverstanden..
Wenn das Fenster ein´s von deinen ist.. dann lieg ich mit meiner Antwort richtig...
Wenn das Fenster von einer anderen Anwendung (Word, Excel Acrobat ect..) ist,
dann würd ich, wenn das Fenster den Focus hat:
Code:
var
SelfId : DWord;
ThreadId: DWord;
Attached: Boolean;
Fokus : HWnd;
begin
SelfId := GetCurrentThreadId;
ThreadId := GetWindowThreadProcessId(GetForegroundWindow, nil);
Attached := False;
if (ThreadId <> 0) and (ThreadId <> SelfId) then
Attached := AttachThreadInput(SelfId, ThreadId, True);
if Attached xor (ThreadId = SelfId) then
try
Fokus := GetFocus;
SendMessage(Fokus, WM_WassAuchImmer...
Wenn das Fenster von einer anderen Anwendung (Word, Excel Acrobat ect..) ist,
dann würd ich, wenn das Fenster
NICHT den Focus hat:
Code:
function FindWindowByTitle(WindowTitle: string): Hwnd;
var
NextHandle: Hwnd;
NextTitle: array[0..260] of char;
begin
NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST);
while NextHandle > 0 do
begin
GetWindowText(NextHandle, NextTitle, 255);
if Pos(WindowTitle, StrPas(NextTitle)) <> 0 then
begin
Result := NextHandle;
Exit;
end
else
NextHandle := GetWindow(NextHandle, GW_HWNDNEXT);
end;
Result := 0;
end;
(c) by diversen Newsgroupusern ...
HTH
Erich
Erich Wanker - for life:=1971 to lebensende do begin ..