Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup - создание инсталляционных пакетов (Часть 15)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Tapas77789



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
 
[Languages]
Name: ru; MessagesFile: "compiler:Languages\Russian.isl"
 
[code]
#define A = (Defined UNICODE) ? "W" : "A"
 
const
  GWL_WNDPROC   = -4;
 
  WM_SYSCOMMAND = $0112;
 
  MF_BYPOSITION = $400;
  MF_SEPARATOR  = $800;
 
  MyIDT         = 99;
 
var
  OldProc: Longint;
 
function CallWindowProc(lpPrevWndFunc: Longint; hWnd: HWND; Msg: UINT; wParam, lParam: Longint): Longint; external 'CallWindowProcA@user32.dll stdcall delayload';
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall delayload';
function AppendMenu(hMenu: HMENU; uFlags, uIDNewItem: UINT; lpNewItem: String): BOOL; external 'AppendMenu{#A}@user32.dll stdcall';
function DeleteMenu(hMenu: Thandle; uPosition: Longword; uFlags: Longword): Boolean; external 'DeleteMenu@user32.dll stdcall';
function GetSystemMenu(hWnd: HWND; bRevert: BOOL): HMENU; external 'GetSystemMenu@user32.dll stdcall';
 
procedure AboutSetupClick;
 begin
   //здесь обрабатываем нажатие на пункт меню "О.Репаке"
   MsgBox('bla-bla-bla', mbInformation, MB_OK);
 end;
 
function WFProc(h: hwnd; Msg, wParam, lParam: Longint): Longint;
begin
  if (Msg = WM_SYSCOMMAND) then begin
    if(wParam = MyIDT) then begin
      AboutSetupClick;
    end;
    result:=0;
  end;
  Result := CallWindowProc(OldProc, h, Msg, wParam, lParam);
end;
 
procedure InitializeWizard();
var
  SysMenu: HMENU;
begin
  SysMenu := GetSystemMenu(Wizardform.Handle, False);
  DeleteMenu(SysMenu, 8, MF_BYPOSITION);
 
  AppendMenu(SysMenu, 0, MyIDT, 'О.Репаке');
  OldProc:=SetWindowLong(WizardForm.Handle, GWL_WNDPROC, CallbackAddr('WFProc'));
end;
 
procedure DeinitializeSetup();
begin
  SetWindowLong(WizardForm.Handle, GWL_WNDPROC, OldProc);
end;

Всего записей: 70 | Зарегистр. 26-05-2008 | Отправлено: 14:57 03-06-2014
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup - создание инсталляционных пакетов (Часть 15)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru