Отключить кнопку закрытия чужого окна 2

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

procedure TForm1.FormCreate(Sender: TObject);

var

Style: Longint;

begin

Style := GetWindowLong(Handle, GWL_STYLE);

SetWindowLong(Handle, GWL_STYLE, Style and not WS_SYSMENU);

end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift:

TShiftState);

begin

if (Key = VK_F4) and (ssAlt in Shift) then

begin

MessageBeep(0);

Key := 0;

end;

end;

{ Disable close button }

procedure TForm1.Button1Click(Sender: TObject);

var

SysMenu: HMenu;

begin

SysMenu := GetSystemMenu(Handle, False);

Windows.EnableMenuItem(SysMenu, SC_CLOSE, MF_DISABLED or MF_GRAYED);

end;

{ Enable close button }

procedure TForm1.Button2Click(Sender: TObject);

begin

GetSystemMenu(Handle, True);

Perform(WM_NCPAINT, Handle, 0);

end;

Но это окно можно закрыть из TaskBar’а.

{/codecitation}

Добавить комментарий