Shura09 Тут же все просто.
Цитата: hwndHandle := FindWindow(nil, 'Untitled - Notepad');
только вместо Untitled - notepad пишешь Access - тру ля ля. Только учти, что лучше всего использовать функцию перечисления всех окон в ней находишь окно в котором есть надпись Access вот пример, его надо подправить под себя. Он просто возвращает хэндл первого окна в котором есть напись Access а ты уже для этого хэндла делаешт это. Вобщем дальше дело техники.
Цитата: hMenuHandle := GetSystemMenu(hwndHandle, FALSE);
if (hMenuHandle <> 0) then
DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);
end;
end;
type
PFindWindowStruct = ^TFindWindowStruct;
TFindWindowStruct = record
Caption : string;
ClassName : string;
WindowHandle : THandle;
end;
function EnumWindowsProc(hWindow:hWnd; lParam:LongInt):Bool;{$IFDEF Win32} stdcall; {$ELSE} ; export; {$ENDIF}
var
lpBuffer:PChar;
WindowCaptionFound:bool;
begin
GetMem(lpBuffer,MAX_PATH+30);
Result := True;
WindowCaptionFound := False;
try
if GetWindowText(hWindow, lpBuffer, MAX_PATH+30) > 0 then
if Pos(AnsiUpperCase(PFindWindowStruct(lParam).Caption),AnsiUpperCase('Access')) > 0
then WindowCaptionFound := true;
if WindowCaptionFound then begin
PFindWindowStruct(lParam).WindowHandle := hWindow;
Result := False;
end;
finally
FreeMem(lpBuffer, sizeof(lpBuffer^));
end;
end;
function FindFWindow(FCaption:string):THandle;
var
WindowInfo : TFindWindowStruct;
begin
with WindowInfo do begin
Caption:=FCaption;
ClassName:='';
WindowHandle:=0;
EnumWindows(@EnumWindowsProc, LongInt(@WindowInfo));
FindFWindow:=WindowHandle;
end;
end;