Inno Setup - BorderIcons下拉菜单

时间:2014-08-03 21:20:25

标签: inno-setup

我发现当您点击左上角的安装程序图标时,会出现下拉菜单,显示最小化,最大化,关闭和关于选项......

当我点击“关于”时,会显示有关Inno安装版本的信息,我真的不想去那里。

我是否能够以某种方式禁用整个此下拉菜单而不实际禁用整个系统菜单或禁用边框?或者最低限度地禁用“关于”选项或将其内容更改为我自己的选项,因此它在某种程度上非常有用。

感谢您对此问题的任何帮助。

1 个答案:

答案 0 :(得分:4)

您可以使用WinAPI DeleteMenu功能删除about菜单项。首先,您必须检索系统菜单的句柄,然后使用DeleteMenu函数删除菜单项。

试试这段代码:

[Code]
const
  MF_BYCOMMAND = $00000000;
  MF_BYPOSITION = $00000400;

type
  HMENU = THandle;

function GetSystemMenu(hWnd: HWND; bRevert: BOOL): HMENU; external 'GetSystemMenu@user32.dll stdcall';
function DeleteMenu(hMenu: HMENU; uPosition, uFlags: UINT): BOOL; external 'DeleteMenu@user32.dll stdcall';
function GetMenuItemCount(hMenu: HMENU): Integer; external 'GetMenuItemCount@user32.dll stdcall';

procedure InitializeWizard;
var
  SystemMenu: HMENU;
begin
  // get the menu handle
  SystemMenu := GetSystemMenu(WizardForm.Handle, False);
  // delete the `About Setup` menu (which has ID 9999)
  DeleteMenu(SystemMenu, 9999, MF_BYCOMMAND);
  // delete the separator
  DeleteMenu(SystemMenu, GetMenuItemCount(SystemMenu)-1, MF_BYPOSITION);
  // ...
end;

您也可以使用相同的技术添加自己的系统菜单条目。