Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.27;
Скачать: CL | DM;

Вниз

Как из приложения создать другое приложение   Найти похожие ветки 

 
Myth   (2002-02-27 23:30) [0]

Доброе время суток!
Подскажите, пожалуйста, каким образом можно реализовать следующее:
При запуске “My project.exe” файла должен создаться другой exe-файл в другой директории (например – “Second_Project.exe”), при выполнении которого пусть выйдет хотя бы пустая форма.
Что я должен прописать в своем проекте “My project”. (Пожалуйста, в примере).
Можно, конечно, “кинуть” оба проекта в установочный пакет с разносом в разные директории, но это не тот вариант.
Мой e-mail: flawless@aport.ru


 
gek   (2002-02-28 07:12) [1]

my_project -> my_compilytor -> my_pas


 
Fellomena   (2002-02-28 11:05) [2]

Включить второй файл (Project2.exe) в первый как ресурс, а при запуске Project1.exe в разделе
initialization или OnCreate формы извлечь этот файл и записать куда надо.
Примеры здесь неуместны. Если не умеешь help-ом пользоваться - ищи в конфе ответ, таких вопросов полно было.


 
drpass ©   (2002-02-28 12:58) [3]

Можно даже не в ресурс его кидать (все-таки help"а под рукой нет), а скопировать в конец своего exe файла, и при запуске доставать оттуда и копировать куда надо (так мы делали в великие времена MS DOS).
Опять же, старый вопрос: а зачем это нужно честной программе?


 
Fellomena   (2002-02-28 16:02) [4]

2 drpass: можно 8) Но, согласись, мало кто назовёт такой способ "хорошим стилем программирования" ;)
А честная или нет - это всё ерунда.
format C: - честная команда ?
del ?

Так что не стоит разводить такие разговоры, imho.


 
VuDZ ©   (2002-02-28 16:56) [5]

имхо, даже зло иногда творит доьро, само того не ведая (С)Гендальф, Власлелин колец


 
MC TOL ©   (2002-02-28 17:06) [6]

- Кто ты?
- Я - часть той силы,
Что вечно хочет зла,
Но делает добро...

Гете, "Фауст".
ИМХО, задолго до пресловутого "Властелина колец"...


 
VuDZ ©   (2002-03-01 02:16) [7]

но смысл один и тот же.
иногда те знания. которые приобретались для вреда, обращаются во благо (ну не поверю я, что авторы нтивирусов никогда не писали самих вирусов :> )


 
avosurt   (2002-03-02 01:24) [8]

Ребята! давайте жить дружно! (с - кот Леопольд)
если уже пошли в ход такие произведения, то не могу удержаться;)))


 
[NIKEL] ©   (2002-03-02 08:59) [9]

вот примерный код
1. стартуй блокнот и делай rc файл с такой строчкой
TESTFILE EXEFILE C:\Windows\Notepad.exe
2. сохрони это как myres.rc
3. компилим это через brcc32.exe
4. копируем myres.rc в рабочую дерикторию :)
5. в юните пишем такое:
var
Form1: TForm1;
NOTEPAD_FILE: string;

ну и сам код

implementation

{$R *.DFM}
{$R MYRES.RES}

function GetTempDir: string;
var
Buffer: array[0..MAX_PATH] of Char;
begin
GetTempPath(SizeOf(Buffer) - 1, Buffer);
Result := StrPas(Buffer);
end;

procedure ExtractRes(ResType, ResName, ResNewName: string);
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, PChar(ResType));
try
Res.SavetoFile(ResNewName);
finally
Res.Free;
end;
end;

procedure ShellExecute_AndWait(FileName: string);
var
exInfo: TShellExecuteInfo;
Ph: DWORD;
begin
FillChar(exInfo, SizeOf(exInfo), 0);
with exInfo do
begin
cbSize := SizeOf(exInfo);
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
Wnd := GetActiveWindow();
ExInfo.lpVerb := "open";
lpFile := PChar(FileName);
nShow := SW_SHOWNORMAL;
end;
if ShellExecuteEx(@exInfo) then
begin
Ph := exInfo.HProcess;
end
else
begin
ShowMessage(SysErrorMessage(GetLastError));
Exit;
end;
while WaitForSingleObject(ExInfo.hProcess, 50) WAIT_OBJECT_0 do
Application.ProcessMessages;
CloseHandle(Ph);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ExtractRes("EXEFILE", "TESTFILE", NOTEPAD_FILE);
if FileExists(NOTEPAD_FILE) then
begin
ShellExecute_AndWait(NOTEPAD_FILE);
ShowMessage("Notepad finished!");
DeleteFile(NOTEPAD_FILE);
end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
NOTEPAD_FILE := GetTempDir + "Notepad_FROM_RES.EXE";
end;


 
VuDZ ©   (2002-03-02 16:16) [10]

советую посмотреть исходники UPX - там и сжатие файла, и запуск его из друго без создания видимых файлов. Вспомню линк - скажу


 
VuDZ ©   (2002-03-02 16:21) [11]

http://upx.sourceforge.net - тут исходники, так что если ког интерисует эта тма - u"re welcome :>



Страницы: 1 вся ветка

Текущий архив: 2002.05.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
1-88561
GenBr
2002-05-16 16:02
2002.05.27
Разработка компонентов


3-88385
HAZARD
2002-05-04 00:55
2002.05.27
Ну вот и столкнулся :(


14-88638
esprit_bel
2002-04-17 10:25
2002.05.27
Работа с текстом


4-88676
SergeyM
2002-03-24 12:34
2002.05.27
WinAPI


7-88658
lipskiy
2002-03-02 19:00
2002.05.27
Что надо учесть, чтобы быть уверенным, что мое приложение будет работоспособно на всех пользовательских машинах?