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

Показать сообщение отдельно

Аватара для AlterEgoFS

Пользователь


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

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


gora, насчёт bat2exe

мне кажется, проще создать рядом с bat exe-файл, который его будет запускать, а не упаковывать, потому что: 1) bat использует переменную %~dp0, которая из sfx-архива смениться на другую. 2) bat-файл очень просто изменить, если это требуется, а после изменения ещё надо не забыть тыкнуть "exe2bat" из контесктного меню

из всего вышесказанного предлагаю свою альтернативу - autoit + руки
это 2 файла - один определяет имя файла и копирует второй файл с именем %ИмяBatФайла%.exe
кладём их рядом в папке (допустим) bat2cmd и далее в реестре

Код: Выделить весь код
reg add "HKEY_CLASSES_ROOT\cmdfile\shell\bat2cmd" /ve /d "bat2cmd"
reg add "HKEY_CLASSES_ROOT\cmdfile\shell\bat2cmd\command" /ve /d "%InstallPath%\bat2cmd\bat2cmd.exe %1"
bat2cmd.exe
Код: Выделить весь код
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=0
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#AutoIt3Wrapper_Run_Before=del /f /q %scriptfile%.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

$name = StringRegExpReplace($CmdLine[1], '\.[^.]*$', '')
FileInstall('.\startcmd.exe', $name & '.exe')
Exit
startcmd.exe
Код: Выделить весь код
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=0
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#AutoIt3Wrapper_Run_Before=del /f /q %scriptfile%.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;
;http://autoit-script.ru/index.php/topic,316.0.html
;

$name = StringRegExpReplace(@ScriptFullPath, '\.[^.]*$', '')

run($name & '.cmd', @ScriptDir)
exit
в таком случае exe будет запускать сам bat-файл непосредственно, а не из архива

Последний раз редактировалось AlterEgoFS, 17-08-2012 в 18:12.


Отправлено: 17:47, 17-08-2012 | #139