Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 9]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [25] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

gosnitsse
24-01-2020, 23:57
Nordek, El Sanchez, спасибо вам за помощь, я благодаря вам понял какие ключи в реестр в случае чего писать, реально спасибо вам за огромнейшую помощь и за терпение меня аутиста)))) я вам очень многим обязан, я понимаю что до вашего интелекта мне далеко, что я вам помочь подобным не с могу, но всё равно - просите у меня что угодно, денег ну по 500 каждому сброшу чтоб не обидно было, я правда благодарен.

P.S: не в обиду но всё же открывайте полные курсы и гайды чтобы обучать ребят бесплатно или за деньги решайте сами, ваши видосики на ютубе очень помогут у меня последний вопрос остался, вот есть репаки от ХАТТАБА, От МЕХАННИКОВ а так же есть вот реально красиво оформленные другие репаки, к примеру фат гирл и хаттаб, вот на какой программе они делали это??? не подскажите ещё более топовую прогу???? где клепают они. Вы уж обучайте так кого-нибудь, если вдруг в случае вашей смерти так сказать уже всё... не будет больше таких светлых умов. Спасибо вам ребятки. Можно ну и ещё 1 вопрос, при выборе языка если нажать отмену, то выскакивает ошибка и установщик без диспетчера задач уже не убрать, что делать с этим? ВСЁ ЧТО БЫЛО СКАЗАНО МНОЙ - НЕ В ОБИДУ.

gosnitsse
25-01-2020, 00:47
Свсем забыл, а как правильно выцепить ключи реестра которая игра требует?

Nordek
25-01-2020, 03:02
курсы и гайды чтобы обучать»
Справки, Примеры, Руководства, Скрипты, Программы в первом сообщении (http://forum.oszone.net/showpost.php?p=2807008).

реально красиво оформленные другие репаки »Inno хоть и ограничен, тем не менее можно многое сделать в Inno от простых до сложных.

Форум (https://krinkels.org/) » Ресурсы (https://krinkels.org/resources/)
R.G. Catalyst (GOG) 1.0 (https://krinkels.org/resources/r-g-catalyst-gog.92/)
R.G. ReCoding 1.0 (https://krinkels.org/resources/r-g-recoding.205/)
R.G. Игроманы 1.1 (16042014) (https://krinkels.org/resources/r-g-igromany.124/)
Dead Space 3 (https://krinkels.org/resources/dead-space-3.270/)
Splinter Cell Blacklist (https://krinkels.org/resources/splinter-cell-blacklist.248/)
Metro 2033 (https://krinkels.org/resources/metro-2033.232/)
Need for Speed: The Run 1.0 (https://krinkels.org/resources/need-for-speed-the-run.84/)
Need for Speed: Hot Pursuit 1.5 (https://krinkels.org/resources/need-for-speed-hot-pursuit.91/)
Need for Speed: ProStreet 1.1 (https://krinkels.org/resources/need-for-speed-prostreet.142/)
Need For Speed Underground 2 + ISDone 0.5 1.2 (https://krinkels.org/resources/need-for-speed-underground-2-isdone-0-5.74/)
Call of Duty Ghosts (https://krinkels.org/resources/call-of-duty-ghosts.269/)
King's Bounty - The Legend 2015-03-23 (https://krinkels.org/resources/kings-bounty-the-legend.189/)
PDA - S.T.A.L.K.E.R. 1.1b (https://krinkels.org/resources/pda-s-t-a-l-k-e-r.128/)
Diablo 3 Install 1.5.8 (https://krinkels.org/resources/diablo-3-install.121/)
Kaspersky Anti-Virus 1.0.0.3 (https://krinkels.org/resources/kaspersky-anti-virus.97/)
Opera Software Installer 1.0 (https://krinkels.org/resources/opera-software-installer.80/)
Adobe Flash Installer 1.0 (https://krinkels.org/resources/adobe-flash-installer.79/)

выцепить ключи реестра которая игра требует? »
RegistryChangesView (https://www.nirsoft.net/utils/registry_changes_view.html)
RegFromApp (https://www.nirsoft.net/utils/reg_file_from_application.html)
Примеры мониторинга системного реестра (http://www.oszone.net/11318)

nik1967
25-01-2020, 08:43
Можно ну и ещё 1 вопрос, при выборе языка если нажать отмену, то выскакивает ошибка и установщик без диспетчера задач уже не убрать, что делать с этим? »
Без полного скрипта сложно советовать.

Nordek
25-01-2020, 09:41
то выскакивает ошибка и установщик без диспетчера задач уже не убрать »Вы когда скомпилировали, после компиляции - Продолжите, запускайте инсталлятор там же для проверки (Учитывайте, что если у вас установлена программа которую облачаете в инсталлятор - Вносимые данные инсталлятором заменятся исходные, от чего ранее установленная программа станет непригодной для дальнейшего использования).
Когда последует вывод ошибки, и после продолжения инсталлятор не завершится - Просто продолжите нажав (Обвёл красным) эту кнопку (Учитывайте, что это на время тестирования):
https://i2.imageban.ru/out/2020/01/25/b5a941db2977508306028988f581e81e.png
- Ошибка проигнорируется и инсталлятор будет завершён.
Далее смотрите ответ от nik1967.

gosnitsse
25-01-2020, 14:38
Спасибо

Beavimo
27-01-2020, 10:41
Добрый день!
Может у когото есть пример для добавления правила в Брандмауэр Windows, потому как все ссылки на примеры битые? Нужно заблокировать устанавливаемой программе доступ в интернет, относительно выбраного пути при установке. Пока что пользую такой пример блокирует вход через хост, ну тогда на сайт не зайти.


function InitializeSetup(): Boolean;
begin
if FileExists(ExpandConstant('{sys}\drivers\etc\hosts')) then
begin
Result:= True;
end
else begin
SaveStringToFile(ExpandConstant('{sys}\drivers\etc\hosts'),'', False)
Result:= True;
end
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
HostFile: TStringList;
begin
HostFile := TStringList.Create;
try
with HostFile do
if CurStep = ssPostInstall then
begin
LoadFromFile(ExpandConstant('{sys}\drivers\etc\hosts'));
if IndexOf('127.0.0.1 www.test.com') = -1 then
Add('127.0.0.1 www.test.com');
SaveToFile(ExpandConstant('{sys}\drivers\etc\hosts'));
end;
finally
HostFile.free;
end
end;

nik1967
27-01-2020, 13:13
Beavimo, у меня такой код завалялся.
#define Exe "ashsnap.exe"

[Setup]
AppName = MyApp
AppVerName = MyApp
DefaultDirname = {pf}\MyApp
OutputDir=.

[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
RC: integer;
SIn,SOut: String;
begin
if CurStep = ssDone then begin
SIn:= ' advfirewall firewall add rule name=ashsnapinst dir=in action=block program='+ExpandConstant('"{app}\{#Exe}"')+' enable=yes';
SOut:= ' advfirewall firewall add rule name=ashsnapinst dir=out action=block program='+ExpandConstant('"{app}\{#Exe}"')+' enable=yes';
Exec('netsh', SIn, '', SW_HIDE, ewWaitUntilTerminated, RC);
Exec('netsh', SOut, '', SW_HIDE, ewWaitUntilTerminated, RC);
end;
end;

Beavimo
27-01-2020, 13:57
nik1967, большое спасибо робит. как бы теперь его отучить не создавать правило повторно, ссылаясь на name=ashsnapinst?

Beavimo
30-01-2020, 16:56
Может кто подскажет как проще реализовать задуманное. Есть батник, перед запуском программы он удаляет ветку реестра, и файл, но ярлык для батника не крепится на панель задач. Как зделать программу (.exe) которая бы удаляла ветку реестра, и некий файл который имеет конкретный путь, а потом запустила бы другую программу, и дела бы это в скритом режыме.
(bat to exe) не предлагать там одни вирусы, может на PascalABCNET можна реализовать задуманое?

Iska
30-01-2020, 18:48
Beavimo, на C/C++. Без .Net.

habib2302
30-01-2020, 21:27
Beavimo, AutoIt в помощь. Могу помочь если надо

Nordek
31-01-2020, 15:39
Font.Style:=[fsBold]; »Всю эту строку, будет не жирный.

Или так:
Font.Style := [];

[hr]

fsBold - Жирный
fsItalic - Курсив
fsUnderline - Подчёрнкнутый
fsStrikeOut - Перечёркнутый

Можно оставить пустым:
Font.Style := [];
При необходимости можно добавить:
Font.Style := [fsItalic];
либо несколько через запятую:
Font.Style := [fsItalic, fsUnderline];

Beavimo
31-01-2020, 15:59
Рабочий пример добавления в Брандмауэр Виндовс, если можна проверьте работоспособность на Виндовс 10

procedure CurStepChanged(CurStep: TSetupStep); var
RC: Integer;
SIn, SOut: String;
begin
if CurStep=ssInstall then
begin
Exec(ExpandConstant('netsh.exe'), 'advfirewall firewall delete rule name="TEST"','', SW_HIDE, ewWaitUntilTerminated, RC)
SIn:='advfirewall firewall add rule name=OCCTTEST dir=in action=block program='+ExpandConstant('"{app}\TEST.exe"')+' enable=yes'; Exec('netsh', SIn,'', SW_HIDE, ewWaitUntilTerminated, RC)
SOut:='advfirewall firewall add rule name=OCCTTEST dir=out action=block program='+ExpandConstant('"{app}\TEST.exe"')+' enable=yes'; Exec('netsh', SOut,'', SW_HIDE, ewWaitUntilTerminated, RC)
end
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); var
RC: Integer;
begin
if CurUninstallStep=usUninstall then
begin
Exec(ExpandConstant('netsh.exe'), 'advfirewall firewall delete rule name="TEST"','', SW_HIDE, ewWaitUntilTerminated, RC)
end
end;

Nordek
31-01-2020, 17:24
на Виндовс 10 »
Проверил - Работает.

При первичной установке добавляет во входящие и исходящие.

При повторной установке:
- Удаляет правила:
if CurStep=ssInstall then
begin
Exec(ExpandConstant('netsh.exe'), 'advfirewall firewall delete rule name="TEST"','', SW_HIDE, ewWaitUntilTerminated, RC)
»
затем добавляет:
SIn:='advfirewall firewall add rule name=OCCTTEST dir=in action=block program='+ExpandConstant('"{app}\TEST.exe"')+' enable=yes'; Exec('netsh', SIn,'', SW_HIDE, ewWaitUntilTerminated, RC)
SOut:='advfirewall firewall add rule name=OCCTTEST dir=out action=block program='+ExpandConstant('"{app}\TEST.exe"')+' enable=yes'; Exec('netsh', SOut,'', SW_HIDE, ewWaitUntilTerminated, RC)
»

При деинсталляции:
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); var
RC: Integer;
begin
if CurUninstallStep=usUninstall then
begin
Exec(ExpandConstant('netsh.exe'), 'advfirewall firewall delete rule name="TEST"','', SW_HIDE, ewWaitUntilTerminated, RC)
»
- Удаляет.

Далее:
SIn:='advfirewall firewall add rule name=OCCTTEST dir=in action=block program='+ExpandConstant('"{app}\TEST.exe"')+' enable=yes'; Exec('netsh', SIn,'', SW_HIDE, ewWaitUntilTerminated, RC) SOut:='advfirewall firewall add rule name=OCCTTEST dir=out action=block program='+ExpandConstant('"{app}\TEST.exe"')+' enable=yes'; Exec('netsh', SOut,'', SW_HIDE, ewWaitUntilTerminated, RC) »
- Кавычки необходимы.

[Setup]
#define AppName "My Program"
#define AppExeName "MyProg.exe"

[Code]
procedure CurStepChanged(CurStep: TSetupStep); var
RC: Integer;
SIn, SOut: String;
begin
if CurStep=ssInstall then
begin
Exec(ExpandConstant('netsh.exe'), 'advfirewall firewall delete rule name="{#AppName}"','', SW_HIDE, ewWaitUntilTerminated, RC)
SIn:='advfirewall firewall add rule name="{#AppName}" dir=in action=block program='+ExpandConstant('"{app}\{#AppExeName}"')+' enable=yes'; Exec('netsh', SIn,'', SW_HIDE, ewWaitUntilTerminated, RC)
SOut:='advfirewall firewall add rule name="{#AppName}" dir=out action=block program='+ExpandConstant('"{app}\{#AppExeName}"')+' enable=yes'; Exec('netsh', SOut,'', SW_HIDE, ewWaitUntilTerminated, RC)
end
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); var
RC: Integer;
begin
if CurUninstallStep=usUninstall then
begin
Exec(ExpandConstant('netsh.exe'), 'advfirewall firewall delete rule name="{#AppName}"','', SW_HIDE, ewWaitUntilTerminated, RC)
end
end;

Beavimo
31-01-2020, 19:54
Хто подскажет почему, вот так работает

procedure InitializeWizard();
begin
RegDeleteValue(HKEY_CURRENT_USER, 'SOFTWARE\TEST', 'PATH_APPLICATION');
end;

а вот так не работает

procedure InitializeWizard();
begin
RegDeleteValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\TEST', 'PATH_APPLICATION');
end;

то есть в курент усер удаляет значение, а в локал лезет в Wow6432Node, как удалить значение в HKEY_LOCAL_MACHINE\SOFTWARE?

Nordek
31-01-2020, 20:29
а в локал лезет в Wow6432Node, как удалить значение в HKEY_LOCAL_MACHINE\SOFTWARE? »Вернитесь чуть назад (http://forum.oszone.net/post-2906607.html#post2906607) или прочитайте справку.
Вам станет понятно:
[Code]
procedure InitializeWizard();
begin
RegDeleteValue(HKLM64, 'SOFTWARE\TEST', 'PATH_APPLICATION');
end;

Beavimo
31-01-2020, 21:44
спасибо всем кто помог.. есть еще один вопрос как удалить файл при установке
]
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then
DeleteFile(ExpandConstant('C:\run.pid'));
end;

Это работает. А как удалить файл по пути USER\AppData\Roaming\TEST\run.pid?

nik1967
31-01-2020, 21:59
А как удалить файл по пути USER\AppData\Roaming\TEST\run.pid? »
Почитать справку по Inno?

Константы специальных папок
{userappdata} & {commonappdata}
Путь к папке с данными приложения (Application Data).


procedure CurStepChanged(CurStep: TSetupStep);
begin
case CurStep of
ssInstall: DeleteFile(ExpandConstant('{userappdata}')+'\TEST\run.pid');
end;
end;

Beavimo
31-01-2020, 22:15
nik1967, что {userappdata}\Roaming\Roaming\TEST\run.pid что {commonappdata}\Roaming\Roaming\TEST\run.pid файл run.pid как был так и остался на своем месте.
И так тоже ниче не удаляется

[InstallDelete]
Type: files; Name: "{userappdata}\Roaming\TEST\run.pid"


Файл обычный, без каких либо атрибутов.




© OSzone.net 2001-2012