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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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;
  WM_USER       = $0400;
  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('Здесь могла бы быть ваша реклама', mbInformation, MB_OK);
end;
 
procedure MenuSetupClick;
begin
   //здесь обрабатываем нажатие на пункт меню "O RePack"
   MsgBox('bla-bla-bla', mbInformation, MB_OK);
end;
 
 function WFWndProc(h:HWND;Msg,wParam,lParam:Longint):Longint;
 begin
  if (Msg=WM_SYSCOMMAND) then begin
    if(wParam=9999) then begin
      AboutSetupClick;
      Result:=0;
    end;
    if(wParam=MyIDT) then begin
      MenuSetupClick;
      Result:=0;
    end;
  end else begin
    if Msg=$0002 then SetWindowLong(WizardForm.Handle,-4,OldProc);
    Result:=CallWindowProc(OldProc,h,Msg,wParam,lParam);
  end;
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('WFWndProc'));
end;
 
procedure DeinitializeSetup();
begin
  SetWindowLong(WizardForm.Handle, GWL_WNDPROC, OldProc);
end;


Всего записей: 70 | Зарегистр. 26-05-2008 | Отправлено: 23:29 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