|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Т.е. есть primer.exe, я его переименовал в primer_ (вообще без расширения). И хочу из другого some.exe (который не переименовывал) запустить этот primer_ Понятно, что могу из some.exe программно обратно скопировать/переименовать primer_ -> primer.exe (м.б. временно), но так делать не хочу. Process.Start("primer_") и любые производные Shell дадут OpenWith Есть идеи? У меня срок сертификата заканчивается, удастся ли приобрести новый не знаю. сейчас подписываю единственный setup.exe Хочу положить рядом setup.exe (маленький) + setup_ (большой, реальный) Подпишу setup.exe (маленький) пока время есть и уже не буду менять, он будет запускаться AsAdmin (доверенный издатель) и запускать setup_ setup_ не должен быть .exe, чтоб юзер на него не жал. Дайте идеи, любые. .Net в общем то ни при чем. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 21:51 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Дмитрий77Дайте идеи, любые. .Net в общем то ни при чем. 1. Попробовать dll - нужно проверить, можно ли подписанному процессу загружать не подписанную библиотеку. 2. Свой загрузчик в подписанном файле 3. Скриптовый транслятор в подписанном файле, скрипт в произвольном файле. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 22:15 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
x1ca4064, инсталлятор всегда запускается под админом и именно при этом запуске выводится "доверенный/недоверенный издатель". если первый (подписанный) exe уже под админом (это я ему обеспечу), и запускает второй exe, то второй exe уже не выведет "доверенный/недоверенный издатель". Вот вся идея. Но если положить рядом именно два exe, то юзер может щелкнуть на большой-реальный и будет "недоверенный". Инсталлятор у меня итак хитрый, двухэтапный с кастомизацией, здесь уже ничего быстро не поменяю. Идея именно нужна как сказать виндам запустить файл без exe расширения как exe. Никогда не думал, что это проблема. Ну, в принципе могу мувнуть скопировать setup_ в %temp%\setup.exe и оттуда запустить. Надо только понять могу ли я его потом удалить из %temp%, потому как это мусор. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 22:32 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Дмитрий77Т.е. есть primer.exe, я его переименовал в primer_ (вообще без расширения). И хочу из другого some.exe (который не переименовывал) запустить этот primer_ А зачем? Какую задачу должны решить эти телодвижения? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 22:38 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Cat2, Задачу вывода сообщения "Доверенный издатель" при нажатии на setup.exe. Сейчас она решается подписыванием большого setup.exe подписью Microsoft, которая пока еще неделю валидна. А через неделю будет невалидна, надо сварганить маленький setup.exe(который уже не буду менять) который будет запускать большой - реальный (который меняется от версии к версии) и успеть подписать. Я все вроде описал начиная с первого поста. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 22:52 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Дмитрий77, А почему "большой" инсталятор не запихать в dll? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 23:01 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Дмитрий77, Сейчас проверил - через CreateProcess вполне запускается 'xxx.x', проверял на Win2K, правда ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2016, 23:08 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
x1ca4064Сейчас проверил - через CreateProcess вполне запускается 'xxx.x', проверял на Win2K, правда А не можешь код дать как проверял? Я попробовал из VB6 (на .Net чего-то не завелось) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Пишет ShellExecuteEx failed; code 1155 Указанному файлу не сопоставлено ни одного приложения для выполнения данной операции Если первый параметр сделать ByVal lpApplicationName As Long и бухнуть "_Data.my" во второй, то ошибка та же Ну я на Win8.1 пробую. Сдается мне, надо _Data.my копировать в %temp% в exe и оттуда запускать, удалить думаю смогу потому как мой setup первого уровня по сути распаковщик в тот же temp. На .Net накатал по-быстрому, вроде работает идея. Ток надо думаю сделать на VB6 и через API (на чем умею). .Net не годится- его наличие на компе на момент начала установки в общем случае не гарантировано. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 01:13 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Дмитрий77, Код (на Дельфи, правда): Код: sql 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.
имя файла я передаю вторым аргументом CreateProcess ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 04:54 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
x1ca4064через CreateProcess вполне запускается 'xxx.x', проверял на Win2K, правда +1 CreateProcess() на расширение не смотрит и не только на Win2K ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 06:39 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Дмитрий77Хочу положить рядом setup.exe (маленький) + setup_ (большой, реальный) Подпишу setup.exe (маленький) пока время есть и уже не буду менять, он будет запускаться AsAdmin (доверенный издатель) и запускать setup_ Обычно в дистрибутивах делают подпапку и туда кладут свой setup.exe. Или можешь переобозвать его как-нибудь, например MyProgInit.exe Для защиты от прямого запуска юзером: запускай с каким-нибудь параметром, если параметра нет - прямой запуск, завершай работу. PS Идею с копированием в %temp% и запуском антивирусы могут не одобрить. Убъют весь твой дистрибутив и сигнатуры в свои базы внесут. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 06:51 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
x1ca4064Код (на Дельфи, правда): Попробовал точно как у тебя. На Win8.1 ошибка та же что и была. М.б. на Win2к и где-то еще и работает, но не на новых. Т.е. не годится. DimaT, >Обычно в дистрибутивах делают подпапку и туда кладут свой setup.exe. Или можешь переобозвать его как-нибудь, например MyProgInit.exe Для защиты от прямого запуска юзером: запускай с каким-нибудь параметром, если параметра нет - прямой запуск, завершай работу. Да, идея неплоха в общем, особенно с параметром. Надо будет сделать и такие заготовки, потом разберусь. Хотя нет, с параметром не получится, у меня во внешней оболочке InnoSetup, если только кто подскажет как сделать чтоб с параметром запускался. >PS Идею с копированием в %temp% и запуском антивирусы могут не одобрить. Убъют весь твой дистрибутив и сигнатуры в свои базы внесут. Так заготовил уже. Как внесут так и вынесут. Хотя с ними общаться - гимор еще тот. Но я не первый раз %temp% использую. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 07:25 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Дмитрий77Сейчас она решается подписыванием большого setup.exe подписью Microsoft, которая пока еще неделю валидна. А через неделю будет невалидна, надо сварганить маленький setup.exe(который уже не буду менять) который будет запускать большой - реальный (который меняется от версии к версии) и успеть подписать. Какие-то непонятные загадочные телодвижения. Когда файл был подписан, вообще не важно. Если через неделю срок действия сертификата истекает, то и ЭЦП перестанет быть валидной. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 09:47 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Дмитрий77, http://www.pinvoke.net/default.aspx/shell32.shellexecuteex + https://blogs.msdn.microsoft.com/oldnewthing/20140210-00/?p=1823 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 11:44 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
buser https://blogs.msdn.microsoft.com/oldnewthing/20140210-00/?p=1823 ? Cпасибо, то что надо, работает с файлом без расширения, и ничего копировать не надо. А как настоящий setup.exe лучше/красивше обозвать? _Data _setup _install ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 14:13 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Alibek B.Когда файл был подписан, вообще не важно. Если через неделю срок действия сертификата истекает, то и ЭЦП перестанет быть валидной. Если файл подписан до истечения срока действия сертификата, и при этом была сделана отметка времени (timestamp), то подпись в файле остается валидной и после истечения срока действия сертификата. Я подписываю маленький setup.exe, и больше его не трогаю (при смене версий). Пользователь скачав дистр. нажимает именно на него и в UAC -окне всегда будет "Проверенный издатель". А подписан ли вообще реальный _setup лежащий рядом (содержание которого меняется от версии к версии), вообще не важно - предупреждения уже не будет. Остается вопрос подписания самих рабочих файлов программы (т.к. некоторые требуют админа с UAC сообщением), но это как раз решается просто путем подписывания своим сертификатом(который сам себе делаешь) и засовыванием последнего в Local в доверенные корневые центры сертификации, с чем инсталлятор (работающий под админом) прекрасно справляется простым .Net-овским кодом в 3 строчки. Не хорошо конечно, но в общем-то даже честно. Проблема только в начальном setup.exe, при запуске которого свой сертификат еще не засунут в корневые доверенные. Ну а что еще придумаешь. Насколько это приемлимо сразу не узнаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2016, 19:27 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Дмитрий77Если файл подписан до истечения срока действия сертификата, и при этом была сделана отметка времени (timestamp), то подпись в файле остается валидной и после истечения срока действия сертификата. Не уверен, что правильно понял. Подпись останется валидной. Но сам сертификат будет невалиден, поскольку срок его действия истек. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2016, 00:53 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Alibek B., А что не понятно? Типа я не понимаю или типа Вам надо разжевать? Если я сейчас подпишу свой setup.exe - то он будет "подписан валидной подписью" - и она (подпись) будет валидна и через неделю, и через год, и через 10. А если подпишу через 2 недели (когда сертификат expired) - то подпись валидна уже не будет. В момент подписывания я через сервер времени (который опять же сертифицирован кем надо MS на сколько надо) ставлю timestamp на свою подпись, например так: Код: vbnet 1.
Поэтому обмануть (поставить подпись задним числом) не получится даже если откручу часы компьютера на месяц назад. Ну разве что обмануть свой компьютер, что неинтересно и только пока не открутил обратно. Если подпись файла без timestamp, то да, ее валидность заканчивается в день кончины сертификата. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2016, 01:33 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Cat2А зачем? Какую задачу должны решить эти телодвижения? Разница между верхней картинкой и нижней есть? Мне и вам м.б. пофиг. А тому кто первый раз нажал на App не обязательно пофиг. И поэтому мне уже не пофиг, и по этой причине предпочитаю нижнюю картинку. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2016, 02:11 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Дмитрий77Остается вопрос подписания самих рабочих файлов программы (т.к. некоторые требуют админа с UAC сообщением), но это как раз решается просто путем подписывания своим сертификатом(который сам себе делаешь) и засовыванием последнего в Local в доверенные корневые центры сертификации, с чем инсталлятор (работающий под админом) прекрасно справляется простым .Net-овским кодом в 3 строчки а сразу озаботиться нормальным сертификатом - никак? а на картинке зачем замазал название ? выпустишь свою софтину, подписав чужим именем? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2016, 10:06 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Изопропил, У меня и есть "нормальный" MS Code Signing с нужным "именем компании", но перевыпустить его сейчас как мне надо не получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2016, 13:07 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Дмитрий77, тебе уже привели пример запуска файла без расширения через Windows API, но можно обойтись средствами .NET Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2016, 14:39 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
bazileДмитрий77, тебе уже привели пример запуска файла без расширения через Windows API, Да, спасибо. Я воспользовался. bazileно можно обойтись средствами .NET Можно, но не стоит. На момент нажатия на setup.exe наличие .Net нужной версии в общем случае на данном компе не гарантировано. Посему я сделал на API причем на VB6. Так надежнее. Правильнее б конечно на C, но у меня рука набита на VB6/VB.Net, а возможности исправить случайную ошибку, когда она вдруг через месяц вскроется, у меня в данном случае нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2016, 02:59 |
|
Запустить exe для которого не указано расширение .exe
|
|||
---|---|---|---|
#18+
Дмитрий77Изопропил, У меня и есть "нормальный" MS Code Signing с нужным "именем компании", но перевыпустить его сейчас как мне надо не получается. Перевыпусил таки майкрософтовский. Уф, непросто это было. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2016, 03:05 |
|
|
start [/forum/topic.php?fid=20&fpage=63&tid=1400658]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 139ms |
0 / 0 |