Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]
Gnom_aka_Lexander
28-04-2011, 16:29
R.i.m.s.k.y., Не, не одно и то-же, мак адрес генерируется опираясь на конфу твоего железа, а Ип выдает твой провайдер.
R.i.m.s.k.y.
28-04-2011, 16:47
R.i.m.s.k.y., Не, не одно и то-же, мак адрес генерируется опираясь на конфу твоего железа, а Ип выдает твой провайдер. »
я в курсе, но почему то все упорно при вопросе дать код на айпишник дают ссылку на этот код макадреса.
айпи дает не только провайдер, есть еще и в локальной сети
мне надо в локальной сети, потому как на некоторых машиназ iputils не срабатывает - could not call proc
Gnom_aka_Lexander
28-04-2011, 17:34
R.i.m.s.k.y., локального ип на некоторых машинах может и не быть :) даже если подключение через сеть идет - я знаю парочку таких провайдеров, отсюда и ошибка.
R.i.m.s.k.y.
28-04-2011, 18:41
локального ип на некоторых машинах может и не быть даже если подключение через сеть идет - я знаю парочку таких провайдеров, отсюда и ошибка. »
не мой случай, почитай на прошлой странице я написал на кой мне это надо, айпишнник есть у всех, а ошибка у 1/3 .
вот такая ошибка »
обратил внимание - когда ставиш Flags: dontcopy, DestDir лучше вообще не указывать »
Совершенно верно, меня даже удивляет, зачем писать DestDir: {tmp}, когда ты распаковываешь сам и тем более ещё раньше чем сработает секция [Files]...
айпи дает не только провайдер, есть еще и в локальной сети »
Согласен, если только вы находитесь в локальной сети... я допустим нет, как и 70% из присутствующих здесь на форуме и локальный IP у всех по умолчанию 127.0.0.1
мне надо в локальной сети, потому как на некоторых машиназ iputils не срабатывает - could not call proc »
не знаю почему не срабатывает, по умолчанию должен выводить 127.0.0.1, но как вариант используйте try..except..end и в случае ошибки выводите 127.0.0.1
локального ип на некоторых машинах может и не быть »
неправда, смотрите выше
EvilAlex
28-04-2011, 20:59
Здравствуйте уважаемые форумчане !
Ктонибудь может дать скрипт для воспроизведения музыки в инстоляторе с кнопкой паузы и пуска ?
Зарание спасибо !
R.i.m.s.k.y.
28-04-2011, 21:40
не знаю почему не срабатывает, по умолчанию должен выводить 127.0.0.1, но как вариант используйте try..except..end и в случае ошибки выводите 127.0.0.1 »
спасибо, но поздно, скрипт уже в ГП КД, завтра будут результаты в логах, или не будут, как луна повернется ;)
R.i.m.s.k.y.
29-04-2011, 09:45
как вариант используйте try..except..end и в случае ошибки выводите 127.0.0.1 »
теже фаберже только сбоку - could not call proc
на тех кампах вин хр3, может в этом дело?
собрал свой вариант вычисления айпишника, айпиадреса, айпи, IP адреса, IPAdress, IP Adress, IPAdres, IP Adres (это были теги для поиска ;)
нужен AdapterWatch http://www.nirsoft.net/utils/awatch.html
[Files]
Source: "awatch.exe"; Flags: dontcopy noencryption nocompression
[*C*ode]
ip : string; // переменная будет доступна всем функциям в коде
Procedure GetIPAdress();
var S: TArrayOfString; i,res : Integer; st : string;
begin
ExtractTemporaryFile('awatch.exe');
Exec(ExpandConstant('{tmp}\awatch.exe'), ' /stab tab1.txt 1 ',ExpandConstant('{tmp}'),SW_HIDE,ewWaitUntilTerminated,res);
LoadStringsFromFile(ExpandConstant('{tmp}\tab1.txt'), S); // загружаем файл
for i:= 0 to GetArrayLength(S)-1 do begin
if (Pos(AnsiUpperCase('IP Addresses'), AnsiUpperCase(S[i])) > 0) then begin
st:=S[i];
break;
end;
end;
StringChangeEx(st, 'IP Addresses', '', True);
st:=TrimLeft(st);
st:=copy(st,0,Length(st)-pos('(',st)-1);
StringChangeEx(st, '(', '', True);
st:=TrimRight(st);
ip:=st;
end;
procedure InitializeWizard();
begin
GetIPAdress;
MsgBox('Your IP adress ' + ip, mbInformation, MB_OK);
.....
end;
R.i.m.s.k.y.
29-04-2011, 12:10
Ктонибудь может дать скрипт для воспроизведения музыки в инстоляторе с кнопкой паузы и пуска ? »
благородный дон уже почитал сообщения в шапке и попробовал Inno Setup GameScript Generator? и поиском успел воспользоваться? и все равно не помогло?
собрал свой вариант вычисления айпишника »
Я рад, что вы смогли решить свою проблему.
R.i.m.s.k.y.
29-04-2011, 13:29
Я рад, что вы смогли решить свою проблему. » я тоже ;)
Gnom_aka_Lexander
29-04-2011, 15:09
Serega, локальный IP у всех по умолчанию 127.0.0.1- позволю себе не согласится, это адрес хоста внутри самого компьютерра, и локальным не является, поскольку из локальной сети не виден.
Sotonisto
29-04-2011, 17:37
Всем доброго времени суток. Как обычно нужна ваша помощь :)
1. Можно ли к стандартному (не заскинованому, без музыки и пр.) инсталлятору добавить авторан, например, YURSHAT'a (скрипт NFSU)?
2. Поделитесь ссылкой на скрипт, при котором инсталл проверял установлено ли приложение. Если установлено - выдавал соответствующее сообщение и зыкрывался.
Заранее спасибо.
R.i.m.s.k.y.
29-04-2011, 18:02
2. Поделитесь ссылкой на скрипт, при котором инсталл проверял установлено ли приложение. Если установлено - выдавал соответствующее сообщение и зыкрывался.
Заранее спасибо. »
[*C*ODE]
function haaliexists(): Boolean;
Var haaliPath: string;
begin
if not IsWin64 then begin
RegQueryStringValue(HKLM, 'SOFTWARE\HaaliMkx','Install_Dir', haaliPath);
if FileExists (RemoveQuotes(haaliPath)+'\splitter.ax') then Result := True else Result := False;
end;
if IsWin64 then begin
RegQueryStringValue(HKLM, 'SOFTWARE\Wow6432Node\HaaliMkx','Install_Dir', haaliPath);
if FileExists (RemoveQuotes(haaliPath)+'\splitter.ax') then Result := True else Result := False;
end;
end;
Function InitializeSetup: Boolean;
Begin
...
if (not haaliexists) then begin
MsgBox('Проги нет! Ложки нет! Жисть не удалась!', mbInformation, MB_OK);
result:=false
end
else result:=true;
end;
murlakatamenka
29-04-2011, 18:18
2. Поделитесь ссылкой на скрипт, при котором инсталл проверял установлено ли приложение. Если установлено - выдавал соответствующее сообщение и зыкрывался.
Заранее спасибо. »
можно проверять через реестр
Можно ли в Inno Setup задать, чтобы установка начиналась только если в реестре присутствует некоторый ключ? Вот готовый скрипт.
#define DateTime GetDateTimeString('ddddd','','')
[Setup]
AppName=CheckRegValue
AppVerName=CheckRegValue and select Component
DefaultDirName={pf}\My Program OutputBaseFilename=Setup (сборка от {#DateTime})
[Tasks]
Name: eng; Description: Английская версия; Check: CheckKey
Name: rus; Description: Русская версия; Check: not CheckKey
[Коде] //заменить коде на Сode
Function CheckKey: Boolean;
Begin
if ExpandConstant('{reg:HKLM\Software\LucasArts\Star Wars Empire at War\1.0,CD Key}') = 'fc4c-3d8-05f-d411-uk20' then Result:= True
End;
Function InitializeSetup: Boolean;
Begin
If RegValueExists(HKLM, 'Software\LucasArts\Star Wars Empire at War\1.0\ExePath', ExpandConstant('{#SetupSetting("DefaultDirName")}')) then Result:= True
else MsgBox('Программа ' + '{#SetupSetting("AppName")}' + ' не установлена!', mbInformation, mb_Ok)
End;
что здесь надо Вам, догадаетесь. взято из faq ру-борда
up!
Помогите вытащить путь к firefox.exe из реестра (ключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe , параметр Path - папка, в который лежит firefox.exe), а затем открыть через него xpi файл для установки плагина.
заранее спасибо.
Habetdin
01-05-2011, 01:33
MrAWP, вместо ссылки впишите параметры для установки xpi:
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[code]
function DetectInstallRegKey: Boolean;
var
Firefox: string;
res: Integer;
begin
if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe', '', Firefox) then
if Firefox <> '' then
Exec(Firefox, 'http://forum.oszone.net/index.php?referrerid=150730', '', SW_SHOW, ewWaitUntilTerminated, res);
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
DetectInstallRegKey;
end;
mariolast
01-05-2011, 05:33
Проконсультируйте если кто в курсе. При следующем раскладе
Compression=lzma2/ultra64
InternalCompressLevel=ultra64
SolidCompression=true
после запуска инсталлятора происходит пауза этак минуты две. Если убираю SolidCompression, то запускается мгновенно, но размер инсталлятора существенно больше. Это как то можно поправить?
R.i.m.s.k.y.
01-05-2011, 08:10
Если убираю SolidCompression, то запускается мгновенно, но размер инсталлятора существенно больше. Это как то можно поправить? »
есть ExtractTemporaryFile в коде? попробуй эти файлы в секции Files вынести в отдельные строчки и поставь флаг solidbreak
solidbreak
When solid compression is enabled, this flag instructs the compiler to finalize the current compression stream and begin a new one before compressing the file(s) matched by Source. This allows Setup to seek to the file instantly without having to decompress any preceding files first. May be useful in a large, multi-component installation if you find too much time is being spent decompressing files belonging to components that weren't selected.
Gnom_aka_Lexander
01-05-2011, 12:18
Neutron,
procedure InitializeWizard();
begin
with WizardForm.ComponentsList do
begin
Visible := False;
end;
end;
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.