Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.005 c
7-88643
Neo_Max
2002-03-01 14:55
2002.05.27
Запуск внешних программ


1-88477
cult
2002-05-15 13:00
2002.05.27
Перерисовка компонента.


3-88323
Ura
2002-04-27 11:16
2002.05.27
Параметри в Query


1-88550
st_Lexa
2002-05-16 11:30
2002.05.27
Как разделить форму?


3-88390
MaximusM
2002-04-29 11:23
2002.05.27
Выбор периодики





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский