Нужна помощь
От: AntonVinnik  
Дата: 19.07.17 05:56
Оценка:
Есть приложение, написанное в Delphi. Инсталлятор Inno Setup. В конце установки инсталлятор делает запрос по уникальному URL и автоматически запускает программу, при запуске программы она делает запрос по другому URL, т.е. считаем конверсию успешных установок в запуски программы. Она должна быть 100% а на практике получается 70%.

Мы тестили больше чем на 20-ти компьютерах и проблему не нашли — везде всё запускается нормально.

Есть проблемы с некоторыми антивирусами (на самом деле в ПО нет ничего плохого, но АВ находят что-то типа generic вирусов), но все они блокируют именно инсталлятор, т.е. он не запускается и даже первый запрос не отправляется.
Re: Нужна помощь
От: AntonVinnik  
Дата: 19.07.17 05:59
Оценка:
Подскажите, пожалуйста, в какую сторону копать
Re: Нужна помощь
От: Qt-Coder http://qtcoder.blogspot.com
Дата: 19.07.17 06:29
Оценка:
Файервол пропускает запрос от инсталлятора и не пропускает от программы.
Я себя очень странно чувствовал — словно есть разница, в каком вагоне ехать.
Re[2]: Нужна помощь
От: AntonVinnik  
Дата: 19.07.17 06:34
Оценка:
QC>Файервол пропускает запрос от инсталлятора и не пропускает от программы.

Про это думали, но врядли у 30% наших пользователей установлен файрволл.
В любом случае — можете посоветовать, какие самые популярные файрволлы проверить?
Re[3]: Нужна помощь
От: greatis  
Дата: 19.07.17 08:17
Оценка:
Здравствуйте, AntonVinnik, Вы писали:

QC>>Файервол пропускает запрос от инсталлятора и не пропускает от программы.


AV>Про это думали, но врядли у 30% наших пользователей установлен файрволл.

AV>В любом случае — можете посоветовать, какие самые популярные файрволлы проверить?

1) Решить проблему 30%.
Для этого передавать данные инсталлятором о результатах запуска программы.
a) Для начала на какой Delphi написано?

Свежие Windows 10 блокируют запуск программ на Delphi 1-5, BCB 1-3 с ошибкой:
"This app can’t run on your PC"

Проблема появилась уже несколько месяцев и касается неупакованных программ.
Те же самые упакованные пускает.

b) Покажите строку запуска в Inno Setup.

c) Есть цифровая подпись? Отчет Virustotal на файл давайте.

d) Какие права требует программа? Есть дли манифест?

2) Добавлять программу в исключения Windows Firewall, так как он есть практически у всех.
Re: Нужна помощь
От: sr_dev  
Дата: 19.07.17 08:39
Оценка:
Здравствуйте, AntonVinnik, Вы писали:

AV>Есть приложение, написанное в Delphi. Инсталлятор Inno Setup. В конце установки инсталлятор делает запрос по уникальному URL и автоматически запускает программу, при запуске программы она делает запрос по другому URL, т.е. считаем конверсию успешных установок в запуски программы. Она должна быть 100% а на практике получается 70%.


AV>Мы тестили больше чем на 20-ти компьютерах и проблему не нашли — везде всё запускается нормально.


AV>Есть проблемы с некоторыми антивирусами (на самом деле в ПО нет ничего плохого, но АВ находят что-то типа generic вирусов), но все они блокируют именно инсталлятор, т.е. он не запускается и даже первый запрос не отправляется.


код ошибки запуска из инсталлера на тот же урл передавайте.
пишите из программы логи, инсталлером же их отправляйте на свой урл через 2 секунды работы программы.
Re: Да ладно
От: akasoft Россия  
Дата: 19.07.17 09:36
Оценка: +3 -1
Здравствуйте, AntonVinnik, Вы писали:

AV>Есть приложение, написанное в Delphi. Инсталлятор Inno Setup. В конце установки инсталлятор делает запрос по уникальному URL и автоматически запускает программу, при запуске программы она делает запрос по другому URL, т.е. считаем конверсию успешных установок в запуски программы. Она должна быть 100% а на практике получается 70%.


Люди снимают галочку всяких автозапусков. Для тех, кто галочку снять не даёт, есть файерволы, которые прибьют активность и установщика, и ПО.
ПО, которое при запуске куда-то лезет (и тупит, если не пролезает), но главная его функция в другом (не лазить по сетям), считаю шпионским.
Выгружать логи без явного согласия пользователя а-я-яй.

А, если вдруг запустятся окошки браузера (с сопутствующими тормозами поднятия оного), то такое ПО самое любимое, и дальше файервола не пройдёт. А если оно ещё будет пробовать втихую манипулировать файерволом, то на это есть файерволы, пресекающие подобную деятельность.

Люди имеют право определять, сообщать им что-то о себе или нет, и реализуют это право. И это нормально. Вот 30% сообщать о себе не хотят.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[4]: Нужна помощь
От: AntonVinnik  
Дата: 19.07.17 21:50
Оценка:
Здравствуйте, greatis, Вы писали:

> Для этого передавать данные инсталлятором о результатах запуска программы.


имеется ввиду код ошибки createprocess (именно он используется в inno для запуска установленной программы)?

> Для начала на какой Delphi написано?


Berlin 10.1

> Покажите строку запуска в Inno Setup.


[Run]
Filename: {app}\{#MyAppExeName}; Flags: nowait postinstall; Parameters: /as /waitpar

> Есть цифровая подпись?


EV Code Signing, подписан и инсталлер/унинсталлер и сама программа

> Какие права требует программа? Есть дли манифест?


права обычного смертного юзера, манифест:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
— <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
— <asmv3:application>
— <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>True/PM</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
— <dependency>
— <dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*" />
</dependentAssembly>
</dependency>
— <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
— <security>
— <requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
— <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
— <application>
— <!— The ID below indicates app support for Windows Vista —>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />
— <!— The ID below indicates app support for Windows 7 —>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
— <!— The ID below indicates app support for Windows 8 —>
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
— <!— The ID below indicates app support for Windows 8.1 —>
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
— <!— The ID below indicates app support for Windows 10 —>
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
</assembly>
Re[2]: Нужна помощь
От: wantus  
Дата: 19.07.17 22:34
Оценка: +2
Здравствуйте, AntonVinnik, Вы писали:

AV>Подскажите, пожалуйста, в какую сторону копать


Personal firewalls типа glasswire или даже старья типа comodo. Те которые по умолчанию спрашивают разрешать неизвестному ранее процессу выход в интернет или нет.

Звонилки домой и всякие "analytics" — это прокатывает на мобильных платформах. На десктопе у многих на такие фокусы конкретная аллергия. То что это делает Микрософт в W10 еще не значит, что вам это тоже с рук сойдет.
Re[5]: Нужна помощь
От: greatis  
Дата: 20.07.17 13:23
Оценка:
Здравствуйте, AntonVinnik, Вы писали:

AV>Здравствуйте, greatis, Вы писали:


Подумалось еще, а не сверяли разницу в зависимости от версии Windows?
Или нет таких данных?

>> Для этого передавать данные инсталлятором о результатах запуска программы.


AV>имеется ввиду код ошибки createprocess (именно он используется в inno для запуска установленной программы)?

Я думаю, что эффективнее программе при запуске записать значения в реестр:
1) Запустилась из инсталлера
2) Результат отправки аналитики.

Прочитать эти значения из инсталлера, например, через Inno Setup Pascal Scripting.
Отправить результат.
По статистике выяснится в чем проблема: в запуске файла или в отправке ею результатов.

AV>[Run]

AV>Filename: {app}\{#MyAppExeName}; Flags: nowait postinstall; Parameters: /as /waitpar

Можно подумать об этих флагах:

runascurrentuser
If this flag is specified, the spawned process will inherit Setup/Uninstall's user credentials (typically, full administrative privileges).

This is the default behavior when the postinstall flag is not used.

This flag cannot be combined with the runasoriginaluser flag.

runasoriginaluser
Valid only in a [Run] section. If this flag is specified and the system is running Windows Vista or later, the spawned process will execute with the (normally non-elevated) credentials of the user that started Setup initially (i.e., the "pre-UAC dialog" credentials).

This is the default behavior when the postinstall flag is used.

If a user launches Setup by right-clicking its EXE file and selecting "Run as administrator", then this flag, unfortunately, will have no effect, because Setup has no opportunity to run any code with the original user credentials. The same is true if Setup is launched from an already-elevated process. Note, however, that this is not an Inno Setup-specific limitation; Windows Installer-based installers cannot return to the original user credentials either in such cases.

This flag cannot be combined with the runascurrentuser flag.

Отпишите хоть результаты. Самому интересно.
Re[4]: Нужна помощь
От: BlackEric http://black-eric.lj.ru
Дата: 20.07.17 19:33
Оценка:
Здравствуйте, greatis, Вы писали:

G>Свежие Windows 10 блокируют запуск программ на Delphi 1-5, BCB 1-3 с ошибкой:

G>"This app can’t run on your PC"

G>Проблема появилась уже несколько месяцев и касается неупакованных программ.

G>Те же самые упакованные пускает.

Чем упаковываете?
https://github.com/BlackEric001
Re[5]: Нужна помощь
От: greatis  
Дата: 21.07.17 09:42
Оценка:
Здравствуйте, BlackEric, Вы писали:

BE>Здравствуйте, greatis, Вы писали:


G>>Свежие Windows 10 блокируют запуск программ на Delphi 1-5, BCB 1-3 с ошибкой:

G>>"This app can’t run on your PC"

G>>Проблема появилась уже несколько месяцев и касается неупакованных программ.

G>>Те же самые упакованные пускает.

BE>Чем упаковываете?

Да чем угодно. Был под рукой старый UPX. упаковал им — запускается.
Re[5]: Нужна помощь
От: greatis  
Дата: 21.07.17 09:53
Оценка:
Здравствуйте, AntonVinnik, Вы писали:

AV>Здравствуйте, greatis, Вы писали:


>> Для этого передавать данные инсталлятором о результатах запуска программы.


Ваша программа не запустится если на компьютере не удается открыть статически привязанную DLL.
Анализировали что программа грузит автоматом?

Если есть желание, киньте ссылку на дистрибутив. Проверю на тестовой машинке с Win10 последней инсайдерской сборки.
Re[4]: Нужна помощь
От: AntonVinnik  
Дата: 28.07.17 18:20
Оценка:
Здравствуйте, greatis, Вы писали:

G>2) Добавлять программу в исключения Windows Firewall, так как он есть практически у всех.


Подскажите, пожалуйста, как это сделать из инсталлятора?
Re[5]: Нужна помощь
От: greatis  
Дата: 31.07.17 11:42
Оценка:
Здравствуйте, AntonVinnik, Вы писали:

AV>Здравствуйте, greatis, Вы писали:


G>>2) Добавлять программу в исключения Windows Firewall, так как он есть практически у всех.


AV>Подскажите, пожалуйста, как это сделать из инсталлятора?


Через Netsh:
netsh.exe firewall add allowedprogram ...

Или реестр
HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\SHAREDACCESS\PARAMETERS\FIREWALLPOLICY\FIREWALLRULES\{35D327DD-F26E-4BAB-9E74-76EF62285A63}: "V2.25|ACTION=ALLOW|ACTIVE=TRUE|DIR=IN|PROTOCOL=6|PROFILE=PUBLIC|APP=%PROGRAM FILES%\MY.EXE|NAME=MY.EXE|"

HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\SHAREDACCESS\PARAMETERS\FIREWALLPOLICY\FIREWALLRULES\{35D327DD-F26E-4BAB-9E74-76EF62285A64}: "V2.25|ACTION=ALLOW|ACTIVE=TRUE|DIR=IN|PROTOCOL=17|PROFILE=PUBLIC|APP=%PROGRAM FILES%\MY.EXE|NAME=MY.EXE|"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.