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

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

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

Widok (25-09-2007 17:33): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
[Setup]
AppName=My Program
AppVerName=My Program ver.1.5
DefaultDirName={pf}\My Program
 
[Files]
Source: IPUtils.dll; Flags: dontcopy
 
[INI]
Filename: \\{code:GetServerIP}\{app}\Settings.ini; Section: "Default"; Key: "dbPath"; String: "{app}\Base\Turuchet.gdb"
 
[Code]
type
   PAnsiChar = PChar;
   LPARAM = DWORD;
   HRESULT = Longint;
   PIDL = DWORD;
 
   BROWSEINFO = record
     hwndOwner: HWND;
     pidlRoot: PIDL;
     pszDisplayName: PAnsiChar;
     lpszTitle: PAnsiChar;
     ulFlags: UINT;
     lpfn: DWORD;
     lParam: LPARAM;
     iImage: Integer;
   end;
 
function SHGetSpecialFolderLocation(hwndOwner: HWND; nFolder: Integer; var pidl: DWORD): HRESULT;
external 'SHGetSpecialFolderLocation@shell32.dll stdcall';
 
function SHBrowseForFolder(var lpbi: BROWSEINFO): PIDL;
external 'SHBrowseForFolder@shell32.dll stdcall';
 
function SHGetPathFromIDList(aPidl: PIDL; path: PChar): Boolean;
external 'SHGetPathFromIDList@shell32.dll stdcall';
 
function GetLocalComputerName: PChar;
external 'GetLocalComputerName@files:IPUtils.dll stdcall';
 
function GetLocalIPAddress: PChar;
external 'GetLocalIPAddress@files:IPUtils.dll stdcall';
 
function GetIPAddress(HostName: PChar): PChar;
external 'GetIPAddress@files:IPUtils.dll stdcall';
 
const
    BIF_BROWSEFORCOMPUTER = $1000;
    CSIDL_NETWORK = $12;
 
var
    ServerPage: TInputQueryWizardPage;
 
function GetServerIP(Param: String): String;
begin
  Result := ServerPage.Values[1];
end;
 
procedure BrowseComputer(Sender: TObject);
var
    display_name, title: string;
    bi: BROWSEINFO;
    network, server_pidl: DWORD;
    hwndParent: HWND;
    NullPos : Integer;
begin
    hwndParent := WizardForm.Handle;
    SHGetSpecialFolderLocation(hwndParent, CSIDL_NETWORK, network);
 
    bi.hwndOwner := hwndParent;
    bi.pidlRoot := network;
    SetLength(display_name, 261);
    bi.pszDisplayName := PChar(display_name);
    title := 'Select the Server:';
    bi.lpszTitle := PChar(title);
    bi.ulFlags := BIF_BROWSEFORCOMPUTER;
    bi.lpfn := 0;
    bi.lParam := 0;
    server_pidl := SHBrowseForFolder(bi);
    if server_pidl <> 0 then begin
       NullPos := Pos(#0, display_name);
       if NullPos > 0 then SetLength(display_name, NullPos - 1);
 
       ServerPage.Values[1] := GetIPAddress(display_name);
    end;
end;
 
procedure InitializeWizard;
var
  button : TButton;
begin
  ServerPage := CreateInputQueryPage(
          wpWelcome,
          'Select Server',
          'What machine is your server on?',
          'You must tell us which machine you will use as a server so that the program can connect automatically when it is started.');
    ServerPage.Add('Local IP-address:', False);
    ServerPage.Values[0]:= GetLocalIPAddress;
    ServerPage.Edits[0].Enabled:= False;
    ServerPage.Add('Server IP-address:', False);
    button := TButton.Create(WizardForm);
    button.Parent := ServerPage.Surface;
    button.Left := WizardForm.DirBrowseButton.Left;
    button.Top := ServerPage.Edits[1].Top - (WizardForm.DIREDIT.Top - WizardForm.DirBrowseButton.Top);
    button.Width := WizardForm.DirBrowseButton.Width;
    button.Height := WizardForm.DirBrowseButton.Height;
    button.Caption := WizardForm.DirBrowseButton.Caption;
    button.OnClick := @BrowseComputer;
    ServerPage.Edits[1].Width := WizardForm.DIREDIT.Width;
end;
 

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 02:10 19-05-2007
   

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

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)
Widok (25-09-2007 17:33): лимит страниц. продолжаем здесь


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru