搞定了,用如下代码,原来这玩艺是有Handle的,
var
tmpHandle:THandle;
begin
tmphandle:=Findwindow(nil,pchar('aaa'));
SendMessage(tmphandle,wm_close,0,0);
end;
谢谢CCRUN,不过也感谢星级饭桶贴的代码,虽然不能运行吧
function EnumFunc(hwnd: THandle; lpParam: Integer): Boolean; stdcall;
var
Buffer: array [0..MAX_TITLE - 1] of Char;
begin
Result := True;
FillChar(Buffer, SizeOf(Buffer), 0);
if GetWindowText(hwnd, Buffer, SizeOf(Buffer)) > 0 then
if PData(lpParam)^.Title = Buffer then
begin
PData(lpParam)^.hwnd := hwnd;
Result := False;
end;
end;
function GetTitleHandle(Title: string): THandle;
var
Data: TData;
begin
FillChar(Data, SizeOf(Data), 0);
Move(Title[1], Data.Title, Length(Title));
EnumWindows(@EnumFunc, Integer(@Data));
Result := Data.hwnd;
end;
var
Child: THandle;
begin
Child := GetTitleHandle(M_CAPTION);
if Child <> 0 then
PostMessage(Child, WM_CLOSE, 0, 0);
end;
function SplashMsgBox(const Handle: THandle; const Text: string; const aiTimeout: Integer): Integer;
begin
SetTimer(Handle, 2, aiTimeout, @TimerFunc);
Result := MessageBox(Handle, PChar(Text), PChar(M_CAPTION),
MB_OKCANCEL or MB_ICONQUESTION); { MB_OKCANCEL do not localize !! }
KillTimer(Handle, 2);
end;