Ветеран
Сообщения: 1133
Благодарности: 581
|
Профиль
|
Отправить PM
| Цитировать
Здравствуйте, накидал скрипт, как можно узнать IP адрес машины, на которой запущен инсталлятор (необходимо соединение с интернетом):
Пример
Код:
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=.
Compression=lzma2/ultra
InternalCompressLevel=ultra
SolidCompression=yes
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Code]
{===============================================================================}
{ Script name: GetMyIP.iss }
{ Script version: 1.0 }
{ Author: Serega, http://forum.oszone.net/member.php?userid=88670 }
{ }
{ This script shows how to learn your IP }
{ Этот скрипт показывает, как узнать свой IP }
{===============================================================================}
var
pnl: TPanel;
lbl: TLabel;
Memo: TMemo;
Button: TButton;
function GetHtmlSource(const url: string): string;
var
vHttp: Variant;
begin
try
vHttp := CreateOleObject('Microsoft.XMLHTTP');
vHttp.open('GET', url, False);
vHttp.send;
Result := vHttp.responseText;
except
Result := 'Возникла ошибка при обращении к серверу, проверьте настройки соединения.';
end;
end;
procedure ButtonClick(Sender: TObject);
var
strHtml: string;
begin
try
Memo.Clear;
lbl.Caption := '';
strHtml := GetHtmlSource('http://2ip.ru/');
Memo.Lines.Text := strHtml;
if (strHtml <> '') and (Pos('ошибка', Copy(strHtml, 1, 20)) = 0) then
begin
Delete(strHtml, 1, Pos('class="ip"', strHtml));
Delete(strHtml, 1, Pos('<big', strHtml));
Delete(strHtml, 1, Pos('>', strHtml));
SetLength(strHtml, Pos('<', strHtml)-1);
lbl.Caption := 'Ваш IP адрес: ' + Trim(strHtml);
end;
finally
SetLength(strHtml, 0);
end;
end;
procedure InitializeWizard();
begin
pnl := TPanel.Create(WizardForm);
with pnl do
begin
Parent := WizardForm;
Left := 0;
Top := 0;
Align := alClient;
end;
WizardForm.CancelButton.Parent := pnl;
with TLabel.Create(WizardForm) do
begin
Parent := pnl;
AutoSize := True;
Left := ScaleX(15);
Top := ScaleY(10);
Caption := 'Исходный код страницы (http://2ip.ru/):';
end;
Memo := TMemo.Create(WizardForm);
with Memo do
begin
Parent := pnl;
SetBounds(ScaleX(15), ScaleY(30), WizardForm.ClientWidth - ScaleX(30), ScaleY(285));
ReadOnly := True;
ScrollBars := ssBoth;
Text := '';
end;
Button := TButton.Create(WizardForm);
with Button do
begin
Parent := pnl;
SetBounds(ScaleX(300), WizardForm.CancelButton.Top, ScaleX(85), ScaleY(23));
Caption := 'Узнать IP';
OnClick := @ButtonClick;
end;
lbl := TLabel.Create(WizardForm);
with lbl do
begin
Parent := pnl;
AutoSize := True;
Left := ScaleX(25);
Top := ScaleY(328);
Font.Size := 12;
end;
end;
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm := False;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.CancelButton.Caption := 'Закрыть';
end;
|
-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.
Последний раз редактировалось Serega, 31-03-2011 в 22:27.
Причина: оптимизация: исправил с (Pos('ошибка', strHtml) = 0) на (Pos('ошибка', Copy(strHtml, 1, 20)) = 0)
Отправлено: 20:56, 31-03-2011
| #1204
|