[Setup] AppName=My Program AppVerName=My Program v 1.5 DefaultDirName={pf}\My Program OutputDir=. Compression=lzma/ultra InternalCompressLevel=ultra SolidCompression=yes [Languages] Name: russian; MessagesFile: compiler:Languages\Russian.isl [Code_] function AppendMenu(hMenu: HMENU; uFlags, uIDNewItem: UINT; lpNewItem: PChar): BOOL; external 'AppendMenuA@user32.dll stdcall'; function GetSystemMenu(hWnd: HWND; bRevert: BOOL): HMENU; external 'GetSystemMenu@user32.dll stdcall'; const WM_SYSCOMMAND = $0112; MF_DELETE = $200; MF_SEPARATOR = $800; MF_BYPOSITION = $400; var Menu: TMenuItem; procedure AppOnMessage(var Msg: TMsg; var Handled: Boolean); begin if Msg.message = WM_SYSCOMMAND then if Msg.wParam = Menu.Handle then MsgBox('Здесь могла бы быть ваша реклама... ', mbInformation, MB_OK);; end; procedure InitializeWizard(); begin // попытаемя удалить родное меню 'О программе' if not AppendMenu(GetSystemMenu(Wizardform.Handle, True), MF_DELETE, 0, SetupMessage(msgAboutSetupMenuItem)) then WizardForm.Position:= poScreenCenter; // создаём сепаратор AppendMenu(GetSystemMenu(Wizardform.Handle, False), MF_SEPARATOR, 0, ''); Menu:= TMenuItem.Create(WizardForm); // создаём ссылку на менюшку // добавляем свой пункт в системное меню 'О программе' AppendMenu(GetSystemMenu(Wizardform.Handle, False), MF_BYPOSITION, Menu.Handle, SetupMessage(msgAboutSetupMenuItem)); Application.OnMessage:= @AppOnMessage; end; |