Что нового

внедрить exe в скрипт

andreitrane

Новичок
Сообщения
141
Репутация
3
есть exe программа, которую нужно запустить нажатием button в gui скрипта, конечно можно поместить эту программу в папку со скриптом и запускать ее, указав положение и название программы, но мне надо внедрить его в сам скрипт, без внешних носителей и dll(если без dll возможно, ну а если невозможно, то заодно еще и скажите как компилировать dll)

если это все реально, то скажите как внедрить exe в скрипт, буду благодарен
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
можете привести пример в каком месте скрипта записать fileinstall(), и как запустить эту программу нажатием кнопки
заранее спасибо
 

VladUs

Скриптер
Сообщения
621
Репутация
181
Код:
#include <GUIConstants.au3>
#include <WindowsConstants.au3>

GUICreate("My GUI Button")
Opt("GUICoordMode",2)
$Button = GUICtrlCreateButton ("OK",  10, 30, 50)
GUISetState () 
While 1
    $msg = GUIGetMsg()
    Select
    Case $msg =  $Button
        FileInstall("C:\Windows\Notepad.Exe", @ScriptDir & "\MyNotepad.Exe")
        Run(@ScriptDir & "\MyNotepad.Exe")
        WinWaitActive("Безымянный - ")
        Send("Запущен MyNotepad.Exe. Это Notepad.Exe который я вложил в файл")
    EndSelect
    
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
спасибо, все работает, но тут такая проблема
после нажатия кнопки идет разархивация и дальнейший запуск программы, а мне надо чтобы программа не разархивировалась, а запускалась прямиком из скрипта, это возможно?
 

VladUs

Скриптер
Сообщения
621
Репутация
181
запускалась прямиком из скрипта, это возможно?
Если Вы имеете ввиду запустить файл из оперативной памяти, то Yashied Вам уже ответил. Хотя...
 
Автор
A

andreitrane

Новичок
Сообщения
141
Репутация
3
можете тогда дать код, чтобы при закрытии скрипта, эти программы удалялись?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
andreitrane [?]
чтобы при закрытии скрипта, эти программы удалялись
Попробуйте так:
Код:
;...в начале скрипта:
OnAutoItExitRegister('_Exit_Func')
;... Ваш код
;...
;...в конце скрипта:
Func _Exit_Func()
	Local $s_Path = 'Полный путь к Вашему распакованному файлу'
	;например @ScriptDir & '\MyNotepad.Exe'
	Local $s_Process = StringRegExpReplace($s_Path, '^.*\\', '')
	If ProcessExists($s_Process) Then
		ProcessClose($s_Process)
	EndIf
	FileDelete($s_Path)
EndFunc   ;==>_Exit_Func
 
Верх