Delphi&интеграция программ
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Delphi&интеграция программ - 2006-03-09 01:55:14
|
|
|
Tages
Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
|
Всем привет [sm=nonodyad.gif]. Перехожу сразу к делу. Проблема следующая: надо интегрировать (вшить) X .exe файл в файл Y.exe, да так, чтобы при запуске Y.exe, запускался и X .exe. Кто знает, то дайте хоть алгоритм, а кто не [sm=5.gif]''жадный''[sm=5.gif]то наброски на Delphi (хотя и от С++ не откажусь). Заранее благодарю [sm=17.gif]
|
|
|
Delphi&интеграция программ - 2006-03-09 02:02:27
|
|
|
-ddd-
Сообщений: 4918
Оценки: 42
Присоединился: 2005-05-23 17:20:41
|
а не легче их склеить спецЫальнЫми программами?
|
|
|
Delphi&интеграция программ - 2006-03-09 02:13:54
|
|
|
Tages
Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
|
quote:
—————-<BR>Цитата: Дата:09.03.2006 2:02:27, Автор:-ddd- :: а не легче их склеить спецЫальнЫми программами? —————-
Нет. Прикол именно в том, что запускаешь прогу, а она уже создаёт файл X.exe, берёт файл Y.exe (адресок можно и из автозагрузки), дописывает X.exe в Y.exe. При следующем запуске видны, запускается и X.exe и Y.exe. Вот так [sm=12.gif]. Идея может и старая, но хорошая[sm=16.gif]
|
|
|
Delphi&интеграция программ - 2006-03-10 15:07:30
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
Надо влепить второй exe -файл в ресурс Ну а потом, при запуске программы его вытащить и запустить — Сейчас вспомню как это делается.
|
|
|
Delphi&интеграция программ - 2006-03-10 15:13:05
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
Лови Здесь используются res -файл Вот вытяжка из другого форума Разбирайся
я в качестве рессурса разместил exe-файл в своей программе (c помощью {$R test.res})
test.res (TEST EXEFILE D:\TEST.EXE)
как мне теперь запустить этот файл по нажатию кнопки? если можно то проилюстрируйте на коде.
——————————————————————————– OlegM © (25.02.03 13:49) VAR s:STRING; BEGIN procedure TForm1.Button1Click(Sender: TоЬjесt); ExtractRes('EXEFILE', 'EXE', 'TEST.EXE'); S:=ExtractFilePath(Application.ExeName); S:=S+'HEXPERT.exe'; WinExec(pCHAR(S), SW_SHOW) end;
——————————————————————————– OlegM © (25.02.03 13:50) Блин, в 7 строке вместо HEXPERT.EXE напиши TEST.exe
——————————————————————————– MikeFW (25.02.03 14:35) что-то я несовсем разобрался в вашем коде, вот тут я привожу полный код программы, которая не работает: подскажите, пожалуйста, где я ошибся
unit Unit1;
interface
uses windоws, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Pass: TEdit; Button1: TButton; procedure Button1Click(Sender: TоЬjесt); private { Private declarations } public { Public declarations } end;
var Form1: TForm1; S: String;
implementation {$R *.dfm} {$R test.res}
procedure ExtractRes(ResType, ResName, ResNewName: String); var Res: TResourceStream; begin Res := TResourceStream.Create(Hinstance, ResName, Pchar(ResType)); //Res.SaveToFile(ResNewName); //Res.Free; end;
procedure TForm1.Button1Click(Sender: TоЬjесt); begin if Pass.Text = '123' then begin ExtractRes('EXEFILE', 'WINSER', 'WINSER.EXE'); S := ExtractFilePath(Application.ExeName); S := S + 'WINSER.EXE'; WinExec(Pchar(S), SW_SHOW); Form1.Close; end else ShowMessage('Пароль указан неверно'); end;
end.
——————————————————————————– OlegM © (25.02.03 14:40) А где ошибку выдает?
——————————————————————————– MikeFW (25.02.03 14:51) ошибку не выдает, просто файл не запускается
——————————————————————————– OlegM © (25.02.03 14:54) А сам файлик то выдергивает из ресурса, посмотри если да то почему не работает Winexec хрен знает. P.S. у меня робит
——————————————————————————– MikeFW (25.02.03 15:01) вот смотри, я убираю комментарии
procedure ExtractRes(ResType, ResName, ResNewName: String); var Res: TResourceStream; begin Res := TResourceStream.Create(Hinstance, ResName, Pchar(ResType)); Res.SaveToFile(ResNewName); Res.Free; end;
и файл ныдергивается из ресурса и копируется в каталог
но мне надо его не копировать, а просто запускать может ты напишешь весь код своей проги, а то честно я не совсем тот кусок понял (думаю в этом и ошибка кроется)
что же я не понял:
// какая функция это? VAR s:STRING; BEGIN // почему здесь идет Button1Click? procedure TForm1.Button1Click(Sender: TоЬjесt); // как выглядит у тебя данная функция? ExtractRes('EXEFILE', 'EXE', 'TEST.EXE'); S:=ExtractFilePath(Application.ExeName); S:=S+'HEXPERT.exe'; WinExec(pCHAR(S), SW_SHOW) end;
——————————————————————————– MikeFW (25.02.03 15:51) procedure ExtractRes(ResType, ResName, ResNewName: String); var Res: TResourceStream; begin Res := TResourceStream.Create(Hinstance, ResName, Pchar(ResType)); Res.SaveToFile(ResNewName); Res.Free; end;
а может есть такая процедура, которая запускает файл, как просиходит копирование в Res.SaveToFile(ResNewName); ?
——————————————————————————– MikeFW (25.02.03 17:03) > OlegM ©
твой код работает только при программе в каталоге, но мне какраз нужно чтобы она запускалась из ресурса
——————————————————————————– OlegM © (26.02.03 06:20) Как запустить из ресурса я незнаю, как то пытался зделать тточно такое-же но неполучилось, пришел к тому что надо после запуска удалять файл, я там правда Flash использовал и короче после выдергивания ролика из ресурса, запускал и затем сразу удалял его Пытался просмотреть будет ли видно файл ролика в Explorere ничего не увидел. Но не знаю прокатит ли это с EXE
procedure TForm1.FormCreate(Sender: TоЬjесt); var S:String; begin ExtractRes('ShockwaveFlashоЬjесts_TLB', 'FLASHM', 'FLASH.swf'); S:=ExtractFilePath(Application.ExeName); S:=S+'Flash.swf'; ShockWaveFlash1.Movie:=S; ShockWaveFlash1.Play; DeleteFile(S); end;
|
|
|
Delphi&интеграция программ - 2006-03-11 00:00:04
|
|
|
Tages
Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
|
Надо влепить второй exe -файл в ресурс Ну а потом, при запуске программы его вытащить и запустить — Сейчас вспомню как это делается. ——————————————————————————- Нет, нет, нет. Я хочу написать прогу, которая будит брать путь к exe файлу (NeroFilterCheck или там ACDSee) после добавлять в него свой код[sm=sm128.gif] (да так добавлять, чтобы обе работали [sm=em121.gif]). Что я этим добьюсь?[sm=12.gif] Доступ к автозагрузке моей проги на чужом компе. Даже если это комп ‘продвинутого’ чела, то он долго будит искать. А перво-наперво он в автозапуск и полезет (и не найдет там ничего, кроме своих же программ). Просто уж очень наглый чел. Решил что если с реестром работать умеет и папки добавлять, то я ему деньги дам…[sm=9.gif][sm=10.gif] Да чуть не забыл, прога уже создаёт 2 копии программы, которая должна выполнятся. Третья следит за тем, чтобы они всегда были на компе, и при необходимости (при удалении NeroFilterCheck или ACDSee), создает новый зараженный файл, беря путь из того же автозапуска(ну и наоборот)[sm=16.gif]. Все работает как раз через res. То есть запускаешь один exe, а получаешь 3+ один зараженный. Также подойдет способ запуска проги не через автозапуск ( по-моему так работает SoftIce) или чтобы зараженная прога при запуске запускала и мою прогу.
|
|
|
Delphi&интеграция программ - 2006-06-20 14:04:20
|
|
|
Tages
Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
|
Ну вот Я опять здесь [sm=11.gif]. Короче самый верный способ, так это запускать "агента" через "службу". А как этого "агента" добавлять, это уже другое дело. Можно через тот-же реестр[sm=10.gif] Думайте, как можно это более "красивее" сбахать. [sm=12.gif]
|
|
|
Delphi&интеграция программ - 2006-06-21 09:19:52
|
|
|
bruder
Сообщений: 29
Оценки: 0
Присоединился: 2006-06-06 16:34:36
|
Нах тут ресурсы? А вот без Stream тут не обойтись => uses Classes => FileSize > 300 kb. [sm=6.gif]
|
|
|
Delphi&интеграция программ - 2006-06-21 09:21:38
|
|
|
bruder
Сообщений: 29
Оценки: 0
Присоединился: 2006-06-06 16:34:36
|
Но если на размер тебе нас_рать…
|
|
|
Delphi&интеграция программ - 2006-06-29 13:56:22
|
|
|
Tages
Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
|
У Мя получается 155.50 kb[sm=3.gif]. Правда с Aspack'ом [sm=11.gif] [sm=12.gif]
|
|
|
Delphi&интеграция программ - 2006-06-29 16:27:29
|
|
|
bruder
Сообщений: 29
Оценки: 0
Присоединился: 2006-06-06 16:34:36
|
Эт не дело… хотя для "знакомления" покатит :)
|
|
|
|
|