Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как запустить .exe в зашифрованном архиве ?

Ответить
Настройки темы
[решено] Как запустить .exe в зашифрованном архиве ?

Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем добрый день !

Помогите пожалуйста решить проблемку.

Есть сценарий :
копирует из зашифрованного архива 40.rar файл 40.exe в текущую папку . fGzq5yKw - пароль.

HTML код: Выделить весь код
RunWait ( @ComSpec & " /c " & 'start winrar.exe e -hpfGzq5yKw 40.rar 40.exe'," ", @SW_HIDE)

Как запустить файл 40.exe на исполнение прямо в зашифрованном архиве, те без копирования?

Отправлено: 10:55, 14-01-2012

 

Аватара для apozlevich

Ветеран


Автор проектов


Сообщения: 1025
Благодарности: 180

Профиль | Отправить PM | Цитировать


Цитата pekich:
Нешифрованный архив :
1. открываем архив двойным кликом и видим 40.exe ;
2. двойным кликом инициируем 40.exe , например это сообщение MsgBox .
Соответственно Вы видите его своими глазами.
3. Переходим в паку \Temp\_tc - папку _tc создал WinRar и распаковал в нее 40.exe.
Это тоже видно глазами.
4. Закрываем сообщение MsgBox , тогда файл 40.exe удаляется, а папка _tc остается. »
WinRAR распаковывает все в темп что-бы "предпросмотреть" файл, по которому вы кликаете. После закрытия подразумевается, что файл больше не нужен пользователю и он удаляет его.

Я так понял, вам надо распаковать и запустить файл?
Код: Выделить весь код
RunWait ( @ComSpec & " /c " & 'start winrar.exe e -hpfGzq5yKw 40.rar 40.exe'," ", @SW_HIDE) ; Это ваш код, мне команда кажется слишком запутанной
RunWait(<путь к папке распаковки>\40.exe)
А можно просто сделать SFX-архив, который это будет делать сам.

-------
echo 127.0.0.1 google.ru >> %systemroot%\system32\drivers\etc\hosts && ipconfig /flushdns && echo Я ничего не трогал, оно само!

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:06, 14-01-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


SFX-архив для моих целей не подходит.
Приведите пожалуйста код, который не запутан. Очень любопытно.
И прошу объяснить что значит в коде следующее:
" /c " ; , " ", .

Отправлено: 15:14, 14-01-2012 | #12


Аватара для apozlevich

Ветеран


Автор проектов


Сообщения: 1025
Благодарности: 180

Профиль | Отправить PM | Цитировать


Цитата pekich:
SFX-архив для моих целей не подходит. »
SFX архив как раз умеет разархивировать и запускать. То что вы делаете, будет работать только на системах с установленным WinRAR.

Цитата pekich:
И прошу объяснить что значит в коде следующее:
" /c " ; , " ", . »
Это же ваш код

RunWait - "Запустить внешнюю программу, ожидать момента окончания ее работы, после чего продолжить выполнение скрипта."
@ComSpec - переменная среды %COMSPEC% (У меня I:\WINDOWS\system32\cmd.exe), запуск обработчика команд.
/c - "Выполнение указанной команды (строки) с последующим завершением."
start - команда start для запуска программы, можно обойтись и без нее, если только не нужен /wait (что не нужно, так как используется RunWait)

Почему бы не сделать проще?
Код: Выделить весь код
RunWait('winrar.exe e -hpfGzq5yKw 40.rar 40.exe', '', @SW_HIDE)

-------
echo 127.0.0.1 google.ru >> %systemroot%\system32\drivers\etc\hosts && ipconfig /flushdns && echo Я ничего не трогал, оно само!

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:23, 14-01-2012 | #13


Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо за ликбез.
1.
Это не мой код , из справки по AutoIt подглядел.
Еще уточните пожалуйста, верно ли я понял :
" /c " - это команда командной строки , то что применяется в bat и cmd файлах ;

, " " , - в коде есть пустые кавычки, они не для указания пути распаковки архива ?

2.
Ваш код не работает.
Может Вы эту конструкцию имели ввиду ?

HTML код: Выделить весь код
#Include <process.au3> _RunDOS( $sCommand )


Отправлено: 15:43, 14-01-2012 | #14


Аватара для apozlevich

Ветеран


Автор проектов


Сообщения: 1025
Благодарности: 180

Профиль | Отправить PM | Цитировать


Цитата pekich:
" /c " - это команда командной строки , то что применяется в bat и cmd файлах ; »
Да, это аргумент для cmd.

Да, мой код не работает потому, что надо указать путь к winrar.exe

Пустые кавычки - это пустые аргументы функции AutoIt, для числовых аргументов обычно подходит -1.

Цитата pekich:
Спасибо за ликбез. »
Снизу всех сообщений снизу есть кнопка "Полезное сообщение"

-------
echo 127.0.0.1 google.ru >> %systemroot%\system32\drivers\etc\hosts && ipconfig /flushdns && echo Я ничего не трогал, оно само!


Отправлено: 15:45, 14-01-2012 | #15


Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


Поместил скрипт с Вашим кодом в папку установленного WinRar, чтобы путь не вводить. Работает.
Только окно WinRar при распаковке мелькает, и путь надо указывать явный. Не есть гуд.

Код из учебника лучше : окна рара невидно и скрипт работает из любой папки операционки.

Вы предложили код :

HTML код: Выделить весь код
RunWait ( @ComSpec & " /c " & 'start winrar.exe e -hpfGzq5yKw 40.rar 40.exe'," ", @SW_HIDE) ; RunWait(<путь к папке распаковки>\40.exe)

Но прежде чем выполнить
HTML код: Выделить весь код
RunWait(<путь к папке распаковки>\40.exe)

Надо знать путь, куда был распакован 40.exe.

Вопрос: где и как в конструкции
HTML код: Выделить весь код
RunWait ( @ComSpec & " /c " & 'start winrar.exe e -hpfGzq5yKw 40.rar 40.exe'," ", @SW_HIDE) ;

прописать путь к папке распаковки ?

Отправлено: 16:15, 14-01-2012 | #16


Аватара для apozlevich

Ветеран


Автор проектов


Сообщения: 1025
Благодарности: 180

Профиль | Отправить PM | Цитировать


Это уже к документации по WinRAR, я не разбираюсь, так как пользуюсь 7-Zip

-------
echo 127.0.0.1 google.ru >> %systemroot%\system32\drivers\etc\hosts && ipconfig /flushdns && echo Я ничего не трогал, оно само!

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:17, 14-01-2012 | #17


Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


Разобрался с документацией WinRar.
Шифрованный файл 40.exe может распаковаться только в текущую папку.
Те нельзя его расшифровать не в текущую папку и сразу запустить на исполнение.
Потом с этим файлом можно делать все что надо.

В данном примере ( apozlevich, пост 11 ), в <путь к папке распаковки> нужен путь к текущей папке распаковки архивного файла.

HTML код: Выделить весь код
RunWait ( @ComSpec & " /c " & 'start winrar.exe e -hpfGzq5yKw 40.rar 40.exe'," ", @SW_HIDE) ; RunWait(<путь к папке распаковки>\40.exe)

Спасибо. Тема решена.

Отправлено: 12:12, 16-01-2012 | #18


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


подскажите как вы решили эту проблему

Отправлено: 11:32, 24-12-2021 | #19


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Какую именно?

Отправлено: 02:15, 25-12-2021 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как запустить .exe в зашифрованном архиве ?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
как запустить .exe vlasoft Хочу все знать 12 20-07-2011 19:33
Как запустить .exe во время первого входа в систему и как обзначается %привод%? VadimN96 Автоматическая установка Windows 2000/XP/2003 4 01-02-2011 16:34
Службы - [решено] Запустить exe как сервис registeruser1 Microsoft Windows 2000/XP 13 19-04-2010 00:53
Установка - В I386 нет WinNT.exe (как запустить) Aleksey26 Microsoft Windows 2000/XP 10 26-12-2008 14:49




 
Переход