Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: Vitus_Bering
Дата сообщения: 20.10.2015 12:03
После установки файл запуска .bat.
Как ему назначить иконку на раб. столе?
Заранее спасибо.
Автор: taba555
Дата сообщения: 20.10.2015 18:59
bat.нику иконку не поставить
Автор: Vitus_Bering
Дата сообщения: 20.10.2015 20:45

Цитата:
bat.нику иконку не поставить

можно поставить:

Код:
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MYPROG.BAT"; IconFilename: "{app}\myicon.ico"
Автор: oXiOneX
Дата сообщения: 27.10.2015 00:03
Всем привет! Таки доделываю скрипт для сборки CS:S, но столкнулся с одним нюансом при установке на Windows 8:



Этот файл запускается после завершения установки


Код: Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
Автор: aftertime
Дата сообщения: 27.10.2015 10:42
oXiOneX
По первому - попробуйте добавить:

Код: PrivilegesRequired=admin
Автор: oXiOneX
Дата сообщения: 27.10.2015 19:52

Цитата:
oXiOneX
По первому - попробуйте добавить:

Код:
PrivilegesRequired=admin

в секцию [Setup]


Пробовал - не помогает
Автор: tryroom
Дата сообщения: 28.10.2015 01:02
oXiOneX

Через реестр пробуйте.

[Registry]
Root: HKCU; SubKey: "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; ValueType: string; ValueName: "{app}\ваш файл.exe"; ValueData: RUNASADMIN; Flags: uninsdeletevalue
Автор: Genri
Дата сообщения: 28.10.2015 13:01
oXiOneX

Цитата:

Код: Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
Автор: oXiOneX
Дата сообщения: 29.10.2015 00:40

Цитата:
Через реестр пробуйте.
 
[Registry]
Root: HKCU; SubKey: "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"; ValueType: string; ValueName: "{app}\ваш файл.exe"; ValueData: RUNASADMIN; Flags: uninsdeletevalue


Пробовал, не помогает


Цитата:
Код:
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent  
 
-- при использовании флага postinstall дефолтным является runasoriginaluser. Попробуй принудительно добавить флаг runascurrentuser.


А вот это помогло. Спасибо!
Автор: oXiOneX
Дата сообщения: 29.10.2015 07:30
Всем привет еще раз. Решил добавить прозрачность в инсталл, но столкнулся со следующей проблемой:



Ссылка на сайт и BeveledLabel не отображаются так, как нужно. Может кто подсказать, как исправить? Кусок кода прилагаю ниже. Заранее спасибо!


Код: var
InfoButton: TNewButton;
PublisherLink: TLabel;

/////////////////////////////////////////////
procedure InfoButtonClick(Sender: TObject);
begin
MsgBox(ExpandConstant('{cm:InfoButtonText}'), mbInformation, MB_OK);
end;

/////////////////////////////////////////////
procedure PublisherLinkClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', ExpandConstant('{#MyAppURL}'), '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;

/////////////////////////////////////////////
procedure iswin7_add_glass(Handle:HWND; Left, Top, Right, Bottom : Integer; GDIPLoadMode: boolean);
external 'iswin7_add_glass@files:iswin7.dll stdcall';

procedure iswin7_add_button(Handle:HWND);
external 'iswin7_add_button@files:iswin7.dll stdcall';

procedure iswin7_free;
external 'iswin7_free@files:iswin7.dll stdcall';

/////////////////////////////////////////////
procedure RedesignWizardForm;
begin
InfoButton := TNewButton.Create(WizardForm);
with InfoButton do
begin
Parent := WizardForm;
Caption := ExpandConstant('{cm:InfoButton}');
SetBounds(ScaleX(10), ScaleY(327), ScaleX(75), ScaleY(23));
OnClick := @InfoButtonClick;
end;
PublisherLink :=TLabel.Create(WizardForm);
with PublisherLink do
begin
Parent := WizardForm;
SetBounds(ScaleX(95), ScaleY(333), ScaleX(75), ScaleY(23));
Caption := ExpandConstant('{#MyAppURL}');
Cursor := crHand;
Color:=$FFFFFF;
// Font.Color := clBlue;
ShowHint := true;
Hint := ExpandConstant('{cm:Community}');
OnClick := @PublisherLinkClick;
transparent := true;
end;
end;

/////////////////////////////////////////////
procedure InitializeWizard();
begin
// SetCustomMessages;
//
RedesignWizardForm;

// Необходимо добавлять каждую кнопку расположенную на стекле
// до инициализации стекла для того что бы не было дыр ))
iswin7_add_button(WizardForm.BackButton.Handle);
iswin7_add_button(WizardForm.NextButton.Handle);
iswin7_add_button(WizardForm.CancelButton.Handle);
iswin7_add_button(InfoButton.Handle);
// Параметр True не трогать он для htuos ))
iswin7_add_glass(WizardForm.Handle, 0, 0, 0, 47, True);
end;

/////////////////////////////////////////////
procedure DeinitializeSetup();
begin
iswin7_free;
end;
Автор: ZVSRus1957
Дата сообщения: 04.11.2015 11:16
Есть код возвращения исходного пути установки и распаковки, не могу найти где ошибка.
Помогите исправить.

Сам код:
procedure dirBackClick(Sender: TObject);
begin
Edit.Text:=AddBackslash(ExpandConstant('{pf}\')+'ACD Systems');
DirTreeView.ChangeDirectory(AddBackslash(ExpandConstant('{pf}\')), True);
if Portable.Checked then
Edit.Text:=(ExpandConstant('{src}\')+'ACDSeePortable');
DirTreeView.ChangeDirectory(AddBackslash(ExpandConstant('{src}\')), True);
end;
Автор: ZVSRus1957
Дата сообщения: 04.11.2015 19:21
Уже помогли разобратся
Автор: tiger30
Дата сообщения: 05.11.2015 15:33
подскажите, пожалуйста, какие параметры в инно [setup] отвечают за перезапись системных файлов без подтверждения.

Объясню, у меня инсталлер с возможность выбора языка программы: (ru, en, de, и т. д.)
Также с программой устанавливаются файлы с атрибутами: hidden system readonly.

Так вот при повторной установке, выскакивает окно мол заменить эти файлы или нет.

Как сделать чтобы их заменяло автоматически?

Добавлено:

Source: "MYPROG.EXE"; DestDir: "{app}"; Flags: ignoreversion overwritereadonly uninsremovereadonly

помогло.
Автор: ZVSRus1957
Дата сообщения: 06.11.2015 16:18

Автор: MISHANCHYK
Дата сообщения: 07.11.2015 04:54
Подскажите пожалуйста.
При регистрации dll при установке:

Код: Source: "{app}\moy.dll"; DestDir: "{app}"; Flags: regserver noregerror ignoreversion
Автор: tryroom
Дата сообщения: 07.11.2015 11:51
MISHANCHYK

Код:
[UninstallRun]
Filename: "{sys}\regsvr32.exe"; Parameters: "/u /s moy.dll"; WorkingDir: "{app}"; Flags: shellexec waituntilterminated
Автор: MISHANCHYK
Дата сообщения: 07.11.2015 12:25
tryroom, большое спасибо.
Автор: tempMISHANCHYK
Дата сообщения: 09.11.2015 07:58
Подскажите пожалуйста.
Можно ли как-то прописать разрядность устанавливаемого приложения в WelcomeLabel1, если в зависимости от разрядности копируются разные файлы?
И как можно отобразить разрядность установленного приложения в "Установка и удаление программ"?
Автор: Alex 17
Дата сообщения: 10.11.2015 20:33
Здравствуйте!

Мне нужен прозрачный WizardSmallImage. Для прозрачности нужен альфа канал. Для альфа канала - png формат, который не поддерживается в Inno Setup. Не подкажете как установить прозрачный WizardSmallImage?

Спасибо!
Автор: sergey3695
Дата сообщения: 11.11.2015 14:27
Alex 17
[more]
Код: [Setup]
AppName=My Program
AppVersion=1.5
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[Files]
Source: Files\*; Flags: dontcopy

[Code_]
function ImgLoad(Wnd :HWND; FileName: PAnsiChar; Left, Top, Width, Height :integer; Stretch, IsBkg :boolean) :Longint; external 'ImgLoad@{tmp}\botva2.dll stdcall delayload';
procedure ImgApplyChanges(h:HWND); external 'ImgApplyChanges@{tmp}\botva2.dll stdcall delayload';
procedure gdipShutdown; external 'gdipShutdown@{tmp}\botva2.dll stdcall delayload';

function InitializeSetup: Boolean;
begin
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
Result:=True;
end;

var
Panel1: TPanel;

procedure InitializeWizard;
begin
ExtractTemporaryFile('1.png');
//
with WizardForm do
begin
Panel1 := TPanel.Create(WizardForm);
with Panel1 do
begin
Parent := MainPanel;
Left := ScaleX(0);
Top := ScaleY(0);
Width := MainPanel.width;
Height := MainPanel.Height;
end;
ImgLoad(Panel1.Handle, ExpandConstant('{tmp}\1.png'), 0, 0, MainPanel.width, MainPanel.Height, True, True);
WizardSmallBitmapImage.Hide;
ImgApplyChanges(Panel1.Handle);
end;
end;

procedure DeInitializeSetup();
begin
gdipShutdown;
end;
Автор: Alex 17
Дата сообщения: 11.11.2015 18:05
спасибо большое!

И еще: я использую iswin7.dll для прозрачных краев и InnoCallback.dll для слайд-шоу, но надпись внизу некорректно отображается. Ее вроде нужно добавить куда-то, не подскажете что и как?


Автор: sergey3695
Дата сообщения: 11.11.2015 19:26
Alex 17
iswin7_add_button(Label1.Handle); - добавляешь хендл после инициализации элемента на форме.
[more]
Код: #define AppName "1"

[Setup]
AppName={#AppName}
AppVerName={#AppName}
DefaultDirName={pf}\{#AppName}

[Files]
Source: ISWin7.dll; DestDir: {tmp}; Flags: dontcopy;

[Code_]
var
Label1: TNewStaticText;

procedure iswin7_add_glass(Handle:HWND; Left, Top, Right, Bottom : Integer; GDIPLoadMode: boolean); external 'iswin7_add_glass@files:iswin7.dll stdcall';
procedure iswin7_add_button(Handle:HWND); external 'iswin7_add_button@files:iswin7.dll stdcall';
procedure iswin7_free; external 'iswin7_free@files:iswin7.dll stdcall';

procedure InitializeWizard();
begin
Label1:= TNewStaticText.Create(WizardForm);
with Label1 do
begin
SetBounds(ScaleX(10),ScaleY(324),ScaleX(50),ScaleY(15));
Font.Color:= $484848;
Font.Name:= 'Georgia';
Font.Style:=[fsBold]
Font.Size:= 10;
Color:= clBlack;
Caption:= 'Sergey3695';
Parent:= WizardForm;
end;
iswin7_add_button(WizardForm.BackButton.Handle);
iswin7_add_button(WizardForm.NextButton.Handle);
iswin7_add_button(WizardForm.CancelButton.Handle);
iswin7_add_button(Label1.Handle);
iswin7_add_glass(WizardForm.Handle, 0, 0, 0, ScaleY(47), False);
end;

procedure DeinitializeSetup();
begin
iswin7_free;
end;
Автор: Alex 17
Дата сообщения: 11.11.2015 20:04
sergey3695, туплю.. как это сделать? И можно ли добавить прозрачность и на эту часть?



[more]


#define TIME_FOR_VIEW 10

[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
Compression=lzma
SolidCompression=yes
OutputDir=.
WizardImageFile=Y:\Downloads/Img2.bmp
WizardSmallImageFile=Y:\Downloads/smallimage.bmp
DisableReadyPage=yes
DiskSpanning=yes

[Files]
Source: iswin7.dll; Flags: dontcopy
Source: Y:\Downloads/Img2.bmp; DestDir: {tmp}; Flags: dontcopy
Source: InnoCallback.dll; Flags: dontcopy noencryption nocompression solidbreak;
Source: ./1.bmp; Flags: dontcopy noencryption nocompression solidbreak;
Source: ./2.bmp; Flags: dontcopy noencryption nocompression solidbreak;
Source: ./3.bmp; Flags: dontcopy noencryption nocompression solidbreak;
Source: ./4.bmp; Flags: dontcopy noencryption nocompression solidbreak;
;Source: "Y:\Documents\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs




[Code]
var
WelcomeLabel1, WelcomeLabel2, FinishedLabel, FinishedHeadingLabel: TLabel;

procedure iswin7_add_glass(Handle:HWND; Left, Top, Right, Bottom : Integer; GDIPLoadMode: boolean);
external 'iswin7_add_glass@files:iswin7.dll stdcall';

procedure iswin7_add_button(Handle:HWND);
external 'iswin7_add_button@files:iswin7.dll stdcall';

procedure iswin7_free;
external 'iswin7_free@files:iswin7.dll stdcall';



const
n=4; //количество слайдов
type
TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);
TRandNumbers = array[1..N] of byte;

function WrapTimerProc(callback:TProc; paramcount:integer):longword;
external 'wrapcallback@files:InnoCallback.dll stdcall';

function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord;
external 'SetTimer@user32.dll stdcall';

function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord;
external 'KillTimer@user32.dll stdcall';

function get_unique_random_number(X:byte):TRandNumbers;
var
A,b,c: string;
i,j,k:byte;
begin
For i:=1 to X do A:=A+chr(i);
B:='';
For i:=1 to X do begin
j:=Random(Length(A)-1)+1;
C:='';
B:=B + A[j];
for k:=1 to Length(A) do
if k<>j then C:=C+A[k];
A:=C;
end;
for i:=1 to X do Result[i]:=ord(B[i]);
end;

var
TimerID: LongWord;
currTime: Integer;
SplashImage: TBitmapImage;
StatusMessages: TNewStaticText;
bmp: TRandNumbers;
z:byte;

procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
begin
currTime := currTime + 1;
if (currTime mod {#TIME_FOR_VIEW} = 0)
then begin
SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\'+inttostr(bmp[currTime/{#TIME_FOR_VIEW}])+'.bmp'));
if (currTime/{#TIME_FOR_VIEW} = N) then currTime:=0;
end;
end;

procedure InitializeWizard();
var
ImageFile: String;
Image: TBitmapImage;
begin

bmp:=get_unique_random_number(N);
ExtractTemporaryFile(inttostr(bmp[1])+'.bmp');

currTime := 0;

WizardForm.ProgressGauge.Parent := WizardForm;
WizardForm.ProgressGauge.Top := WizardForm.CancelButton.Top + ScaleY(12);
WizardForm.ProgressGauge.Left := ScaleX(10);
WizardForm.ProgressGauge.Width := WizardForm.MainPanel.Width - ScaleX(20);
WizardForm.ProgressGauge.Height := 16;
WizardForm.ProgressGauge.Hide;



WizardForm.StatusLabel.Parent := WizardForm;
WizardForm.StatusLabel.Top := WizardForm.ProgressGauge.Top - ScaleY(18);
WizardForm.StatusLabel.Left := ScaleX(10);
WizardForm.StatusLabel.Width := ScaleX(397);
WizardForm.StatusLabel.Hide;

SplashImage := TBitmapImage.Create(WizardForm);
SplashImage.Top := 0;
SplashImage.Left := 0;
SplashImage.Width := WizardForm.MainPanel.Width;
SplashImage.Height := WizardForm.Bevel.Top;
SplashImage.Parent := WizardForm.InnerPage;
SplashImage.Stretch := True;
SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\'+inttostr(bmp[1])+'.bmp'));
SplashImage.Hide;




// Необходимо добавлять каждую кнопку расположенную на стекле
// до инициализации стекла для того что бы не было дыр ))
iswin7_add_button(WizardForm.BackButton.Handle);
iswin7_add_button(WizardForm.NextButton.Handle);
iswin7_add_button(WizardForm.CancelButton.Handle);

// Параметр True не трогать он для htuos ))
iswin7_add_glass(WizardForm.Handle, 0, 0, 0, 47, True);
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;
WizardForm.WizardSmallBitmapImage.Left := ScaleX(0);
WizardForm.WizardSmallBitmapImage.Top := ScaleY(0);
WizardForm.WizardSmallBitmapImage.Width := WizardForm.MainPanel.Width;
WizardForm.WizardSmallBitmapImage.Height := WizardForm.MainPanel.Height;

ExtractTemporaryFile('img2.bmp');

WizardForm.WizardBitmapImage.Width:= ScaleX(497);
WizardForm.WizardBitmapImage2.Width:= ScaleX(497);
WizardForm.WizardBitmapImage2.Bitmap.LoadFromFile(ExpandConstant('{tmp}\img2.bmp'));

WelcomeLabel1:= TLabel.Create(WizardForm);
WelcomeLabel1.AutoSize:= False;
with WizardForm.WelcomeLabel1 do
WelcomeLabel1.SetBounds(Left, Top, Width, Height);
WelcomeLabel1.Font:= WizardForm.WelcomeLabel1.Font
WelcomeLabel1.Font.Color:= clWhite;
WelcomeLabel1.Transparent:= True;
WelcomeLabel1.WordWrap:= true;
WelcomeLabel1.Caption:= WizardForm.WelcomeLabel1.Caption;
WelcomeLabel1.Parent:= WizardForm.WelcomePage


WelcomeLabel2:= TLabel.Create(WizardForm);
WelcomeLabel2.AutoSize:= False;
with WizardForm.WelcomeLabel2 do
WelcomeLabel2.SetBounds(Left, Top, Width, Height);
WelcomeLabel2.Font:= WizardForm.WelcomeLabel2.Font
WelcomeLabel2.Font.Color:= clWhite;
WelcomeLabel2.Transparent:= True;
WelcomeLabel2.WordWrap:= true;
WelcomeLabel2.Caption:= WizardForm.WelcomeLabel2.Caption;
WelcomeLabel2.Parent:= WizardForm.WelcomePage




FinishedHeadingLabel:= TLabel.Create(WizardForm);
FinishedHeadingLabel.AutoSize:= False;
with WizardForm.FinishedHeadingLabel do
FinishedHeadingLabel.SetBounds(Left, Top, Width, Height);
FinishedHeadingLabel.Font:= WizardForm.FinishedHeadingLabel.Font
FinishedHeadingLabel.Font.Color:= clWhite;
FinishedHeadingLabel.Transparent:= True;
FinishedHeadingLabel.WordWrap:= true;
FinishedHeadingLabel.Caption:= WizardForm.FinishedHeadingLabel.Caption;
FinishedHeadingLabel.Parent:= WizardForm.FinishedPage



FinishedLabel:= TLabel.Create(WizardForm);
FinishedLabel.AutoSize:= False;
with WizardForm.FinishedLabel do
FinishedLabel.SetBounds(Left, Top, Width, Height);
FinishedLabel.Font:= WizardForm.FinishedLabel.Font
FinishedLabel.Font.Color:= clWhite;
FinishedLabel.Transparent:= True;
FinishedLabel.WordWrap:= true;
FinishedLabel.Caption:= WizardForm.FinishedLabel.Caption;
FinishedLabel.Parent:= WizardForm.FinishedPage

WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.FinishedHeadingLabel.Hide;

WelcomeLabel1.Visible:=False;
WelcomeLabel2.Visible:=False;
FinishedLabel.Visible:=False;
FinishedHeadingLabel.Visible:=False;
end;

procedure CurPageChanged(CurPageID: Integer);
var
pfunc: LongWord;
begin
FinishedLabel.Caption:= WizardForm.FinishedLabel.Caption;

if (CurPageID = wpInstalling) then
begin
pfunc := WrapTimerProc(@OnTimer, 5);
TimerID := SetTimer(0, 0, 1000, pfunc);
WizardForm.PageNameLabel.Visible := False;
WizardForm.PageDescriptionLabel.Visible := False;
WizardForm.InnerNotebook.Hide;
WizardForm.Bevel1.Hide;
WizardForm.MainPanel.Hide;
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;
WizardForm.ProgressGauge.Show;
WizardForm.StatusLabel.Show;
SplashImage.Show;
WizardForm.CancelButton.Enabled := True;
WizardForm.CancelButton.Top := WizardForm.Bevel.Top + ScaleY(100);
end else
begin
WizardForm.ProgressGauge.Hide;
SplashImage.Hide;
WizardForm.FileNameLabel.Hide;
WizardForm.StatusLabel.Hide;
if (CurPageID > wpInstalling) and (CurPageID < wpFinished) then
begin
WizardForm.InnerNotebook.Show;
WizardForm.Bevel1.Show;
WizardForm.MainPanel.Show;
WizardForm.PageNameLabel.Show;
WizardForm.PageDescriptionLabel.Show;
end;
If CurPageID = wpFinished then
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then
begin
//WizardForm.StatusLabel.Caption := 'Распаковка слайдов ...';
for z:=2 to N do ExtractTemporaryFile(inttostr(bmp[z])+'.bmp');
end;
end;

procedure DeinitializeSetup();
begin
KillTimer(0, TimerID);
iswin7_free;
end;
[/more]
Автор: dinis124
Дата сообщения: 11.11.2015 20:21
Привет.

Поделитесь дельными советами и наработками по установке и запуску служб.

Автор: sergey3695
Дата сообщения: 11.11.2015 21:33
Alex 17
это геморно очень, но можно.
Автор: Alex 17
Дата сообщения: 11.11.2015 21:48
[DELETED]
Автор: ruslan666815
Дата сообщения: 13.11.2015 02:15
Помогите разобраться как использовать WinAPI функцию GetAdaptersInfo в Inno Seup.


Код:
const
MAX_ADAPTER_NAME_LENGTH = 256;
MAX_ADAPTER_DESCRIPTION_LENGTH = 128;
MAX_ADAPTER_ADDRESS_LENGTH = 8;
IPHelper = 'iphlpapi.dll';

// Типы адаптеров
MIB_IF_TYPE_OTHER = 1;
MIB_IF_TYPE_ETHERNET = 6;
MIB_IF_TYPE_TOKENRING = 9;
MIB_IF_TYPE_FDDI = 15;
MIB_IF_TYPE_PPP = 23;
MIB_IF_TYPE_LOOPBACK = 24;
MIB_IF_TYPE_SLIP = 28;

type
IP_ADDRESS_STRING = record
S: array [0..15] of Char;
end;
IP_MASK_STRING = IP_ADDRESS_STRING;



IP_ADDR_STRING = record
Next: cardinal;
IpAddress: IP_ADDRESS_STRING;
IpMask: IP_MASK_STRING;
Context: DWORD;
end;
time_t = Longint;

IP_ADAPTER_INFO = record
Next: cardinal;
ComboIndex: DWORD;
AdapterName:array [0..MAX_ADAPTER_NAME_LENGTH + 3] of AnsiChar;
Description: array [0..MAX_ADAPTER_DESCRIPTION_LENGTH + 3] of AnsiChar;
AddressLength: UINT;
Address: array [0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of BYTE;
Index: DWORD;
Type_: UINT;
DhcpEnabled: UINT;
CurrentIpAddress: IP_MASK_STRING;
IpAddressList: IP_ADDR_STRING;
GatewayList: IP_ADDR_STRING;
DhcpServer: IP_ADDR_STRING;
HaveWins: BOOL;
PrimaryWinsServer: IP_ADDR_STRING;
SecondaryWinsServer: IP_ADDR_STRING;
LeaseObtained: time_t;
LeaseExpires: time_t;
end;


function GetAdaptersInfo(pAdapterInfo: array of IP_ADAPTER_INFO;pOutBufLen: Integer): Integer;
external 'GetAdaptersInfo@Iphlpapi.dll stdcall';
function VCVersionInstalled(const ProductID: string): Boolean;
var
sTemp: string;
iRes: Integer;
BufLen,Status: cardinal;
pAdapterInfo: array of IP_ADAPTER_INFO;
begin
Status:= GetAdaptersInfo(pAdapterInfo,BufLen);
end;
Автор: MentalWarrior
Дата сообщения: 13.11.2015 08:27
Извиняюсь за офф, но когда вернут шапку? Просто непонятны почему до сих пор не вернули.
Автор: AlexALSP
Дата сообщения: 17.11.2015 16:11
Шапка есть только не закреплена .
Автор: ultimo
Дата сообщения: 18.11.2015 16:49
Всем привет.

Вопрос в следующем: (взял основу из примера IS5\Examples\CodeClasses.iss)

Код:
procedure FormButtonOnClick(Sender: TObject);
var
Form: TSetupForm;
OKButton, CancelButton: TNewButton;
begin
Form := CreateCustomForm();
try
Form.ClientWidth := ScaleX(256);
Form.ClientHeight := ScaleY(256);
Form.Caption := 'TSetupForm';
Form.CenterInsideControl(WizardForm, False);

OKButton := TNewButton.Create(Form);
OKButton.Parent := Form;
OKButton.Width := ScaleX(75);
OKButton.Height := ScaleY(23);
OKButton.Left := Form.ClientWidth - ScaleX(75 + 6 + 75 + 10);
OKButton.Top := Form.ClientHeight - ScaleY(23 + 10);
OKButton.Caption := 'OK';
OKButton.ModalResult := mrOk;

CancelButton := TNewButton.Create(Form);
CancelButton.Parent := Form;
CancelButton.Width := ScaleX(75);
CancelButton.Height := ScaleY(23);
CancelButton.Left := Form.ClientWidth - ScaleX(75 + 10);
CancelButton.Top := Form.ClientHeight - ScaleY(23 + 10);
CancelButton.Caption := 'Cancel';
CancelButton.ModalResult := mrCancel;
CancelButton.Cancel := True;

Form.ActiveControl := OKButton;

if Form.ShowModal() = mrOk then
MsgBox('You clicked OK.', mbInformation, MB_OK);
finally
Form.Free();
end;
end;

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758

Предыдущая тема: Только инсталлятор


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.