Tosyk
Новичок
- Сообщения
- 206
- Репутация
- 0
Есть две программы и CMD скрипт, который ищет файлы *.sds вглубь по каталогам и обрабатывает каждый двумя программами:
Нужно, чтобы всё эти программы были включены в конечный скомпилированный EXE и операции проходили бы незаметно для пользователя. Из того, что я пока узнал на autoit-script.ru у меня получился скрипт:
Скрипт имеет диалоговое окно и умеет исполнять CMD если только все необходимые программы и CMD лежат с ним в одной папке, а те которые включены в него он игнорирует.
Вопрос: как использовать ресурсы включённые в конечный EXE, возможно с распаковкой в папку TEMP.
Код:
@Echo Off
For /F "Tokens=*" %%A In ('Dir /B /S *.sds') Do (
MD "%%~dpnA" 2>nul&&Mafia2ModelDumper.exe "%%A"
For %%B In (*.dae) Do mesh2rdm.exe "%%B" "%%~dpnA\%%B" -flipuv -scale 100 -nopause -rotate 0 180 0
Del /F /Q *.dae 2>nul
@rem SDSTool.exe e -o ""%%~dpnA"" "%%A"
)
Код:
#Region
#AutoIt3Wrapper_icon=application-x-executable.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_File_Add=mesh2rdm.exe, rt_rcdata, MESH_2_RDM_EXE
#AutoIt3Wrapper_Res_File_Add=Gibbed.Helpers.dll, rt_rcdata, GIBBED_DLL_1
#AutoIt3Wrapper_Res_File_Add=Gibbed.Illusion.FileFormats.dll, rt_rcdata, GIBBED_DLL_2
#AutoIt3Wrapper_Res_File_Add=ICSharpCode.SharpZipLib.dll, rt_rcdata, GIBBED_DLL_3
#AutoIt3Wrapper_Res_File_Add=Mafia2ModelDumper.exe, rt_rcdata, MAFIA_2_MODEL_DUMPER_EXE
#AutoIt3Wrapper_Res_File_Add=Mafia2ModelDumper.exe.config, rt_rcdata, M2D_CONFIG
#AutoIt3Wrapper_Res_File_Add=Mafia2Tool.dll, rt_rcdata, M2D_DLL
#AutoIt3Wrapper_Res_File_Add=m2-obj-conv.cmd, rt_rcdata, MAIN_CMD
#EndRegion
;#include <Mafia2ModelDumper.exe>
;#include <mesh2rdm.exe>
If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)
FileChangeDir('.\')
Run("m2-obj-conv.cmd", "", @SW_HIDE)
#include <GUIConstantsEx.au3>
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Progress", 265, 107, 298, 181)
$Progress1 = GUICtrlCreateProgress(8, 16, 249, 22)
$Button1 = GUICtrlCreateButton("Запуск", 8, 64, 249, 40
)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUICtrlSetState($Button1, $GUI_DISABLE)
GUICtrlSetData($Progress1, 0)
For $i = 1 To 100
GUICtrlSetData($Progress1, $i)
Sleep(20)
Next
ToolTip('Ждем 2 секунды...', 0, 0)
Sleep(2000)
ToolTip('')
GUICtrlSetData($Progress1, 0)
GUICtrlSetState($Button1, $GUI_ENABLE)
EndSwitch
WEnd
Exit
Скрипт имеет диалоговое окно и умеет исполнять CMD если только все необходимые программы и CMD лежат с ним в одной папке, а те которые включены в него он игнорирует.
Вопрос: как использовать ресурсы включённые в конечный EXE, возможно с распаковкой в папку TEMP.