Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lifeSample

[Tutorial] Juntando 2 ou + (.EXE) em apenas 1

Recommended Posts

Este programa não faz uso de interface gráfica(opcional)

 

 

Este tutorial reuni Dois em um só.

 

- Embutir (.EXE) em (.EXE)

- Juntando 2 (.EXE) em apenas 1

 

Embutidor

 

1. Crie um arquivo chamado (EMBUTIR.rc)

2. Abra-o com o Bloco de Texto e escreva:

 

EXTRA EXEFILE C:\EXTRA.EXE

EMAIL EXEFILE C:\EMAIL.EXE

Negrito: Refere-se ao apelido da sua aplicação. Coloque o nome do executavel(recomendado).

Inclinado: Refere-se ao tipo da sua aplicação.

Sublinhado: Refere-se ao caminho da sua aplicação. Coloque um diretório simples, pois a partir do próximo passo você ja vai poder deletar esses arquivos(se quiser).

 

Obs: Você pode colocar qualquer tipo de arquivo no (.rc).

 

3.Vamos compilar seu (.rc)

 

- Abra o seu Prompt de Comando: Iniciar > Executar > cmd.

- Digite: BRCC32

- Digite: BRCC32 C:\EMBUTIR.rc

 

Laranja: É onde você salvou o seu arquivo (.rc).

 

4.Vá ao C:/ (Ou outro diretório onde estava o (.rc)), que você verá o novo arquivo compilado o (EMBUTIR.RES) o seu Resource.

5.Leve ele até a pasta onde está seu Projeto (.dpr) e coloque no seu Código da Unit.pas onde tem:

 

(...)

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

end.

E adiocene antes de 'end.' isso:

 

{$R EMBUTIR.res} // Ou o nome do seu (.res)

Ficando assim:

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

{$R EXE.RES}

Juntando os arquivos

 

6.Executando e Salvando os arquivos dentro do (.res), (EXTRA.EXE) e (EMAIL.EXE). Vou explicar no própio código.

 

Procedure SaveEXTRA; // Nome da procedure a ser chamada

Var PathToSave:String; // Declarando as variáveis

Res : TResourceStream;

Begin

PathToSave := 'C:\TESTE\EXTRA.EXE'; // (Pasta + Nome do executável). Aonde você quer salvar (PathToSave)

If not FileExists(PathToSave) Then Begin // Checa se o arquivo já existe

Res := TResourceStream.Create(Hinstance, 'EXTRA', 'EXEFILE'); //O título e o tipo do arquivo

Try // Salva o arquivo

Res.SavetoFile(PathToSave);

Finally

Res.Free;

End;

End;

WinExec(pchar('C:\TESTE\EXTRA.EXE'), sw_normal); //Executa o arquivo

End;

Faça isso para cada arquivo

 

7. Ué como vamos executar essa função antes de tudo? Insira no FIM do código, antes do 'end.':

Initialization

Begin

SaveEXTRA; // Executa as funções declaradas

SaveEMAIL;

Application.Terminate; //Termina o Juntador, mais não as aplicações dos outros dois (.EXE).

end;

É isso.

 

Objetivos:

- Juntar e executar 2 (.EXE) ou mais;

- Salva dois arquivos internos para algum diretório específico;

- E claro, abrir portas para outros tipos de programas.

(eu fiz um Enviador de Emails com SSL extraindos as DLLS assim pega em todos os computadores ;D)

 

Seu código final deverá ficar semelhante a este:

 

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
	Label1: TLabel;
  private
	{ Private declarations }
  public
	{ Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{$R EMBUTIR.RES}

// >> JUNTADOR FUNCOES << ===============================================
// SALVA O EXTRA
Procedure SaveEXTRA;
Var PathToSave:String;
	Res : TResourceStream;
Begin
  PathToSave := 'C:\TESTE\EXTRA.EXE';
  If not FileExists(PathToSave) Then Begin
	 Res := TResourceStream.Create(Hinstance, 'EXTRA', 'EXEFILE');
	 Try
	   Res.SavetoFile(PathToSave);
	 Finally
	   Res.Free;
	 End;
  End;
  WinExec(pchar('C:\TESTE\EXTRA.EXE'), sw_normal);
End;
//SALVA O EMAIL
Procedure SaveEMAIL;
Var PathToSave:String;
	Res : TResourceStream;
Begin
  PathToSave := 'C:\TESTE\EMAIL.EXE';
  If not FileExists(PathToSave) Then Begin
	 Res := TResourceStream.Create(Hinstance, 'EMAIL', 'EXEFILE');
	 Try
	   Res.SavetoFile(PathToSave);
	 Finally
	   Res.Free;
	 End;
  End;
  WinExec(pchar('C:\TESTE\EMAIL.EXE'), sw_normal);
End;
//=====================================================================



// >> EXECUTA EXTRACAO << =============================================
Initialization
Begin
   SaveSERVER;
   SaveEMAIL;
   Application.Terminate;
end;
//=====================================================================
end.

Extra

 

Como o programa não tem interface gráfica, não precisa mostrar aquela janela em branco do Delphi."(Piscar)".

 

Então vá em Project > View Source > e adicione abaixo de:

Application.CreateForm(TForm1, Form1);

O código:

Application.ShowMainForm:=False; //Não mostra o programa

Seu source deve fica +- assim:

program Project1;

 

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};

 

{$R *.res}

 

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.ShowMainForm:=False;

Application.Run;

end.

Boa Aprendizagem!

 

by lifeSample

Compartilhar este post


Link para o post
Compartilhar em outros sites

explique melhor ricardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

ricardo o que você esta querendo fazer nao e possivel juntar .exe com foto e continuar a mesma extensao da foto : ) e virus mesmo xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria como juntar não apenas executaveis, e sim juntar um executavel em uma foto ou video.

 

Qualquer tipo de arquivo pode ser incluído no executável através deste método.

Quanto ao contrário, de próposito duvidável, conheço alguns métodos possíveis:

- Alterar o registro do Windows para executar um .JPG como .EXE;

- Executar o .JPG como .EXE através do prompt de comando ou atalho com comando.

 

lifeSample

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma dúvida, atravéz deste meio, depois que unifiquei 2 executaveis, estes serão executados "ao mesmo tempo" no .exe gerado ou o novo arquivo faz tipo uma instalação dos dois em sequencia?

 

Estou pesquisando como crio UM executável para "unificar" uns patches de games de modo que, por exemplo, atravéz de um so .exe, seja instalados o patch1, logo em seguida o patch2, depois o patch3.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal to com uma duvida ai no tuto...

 

a parte 5 e a parte 6 tem como me explicar um poko melhor ??

tipo o arquivo .dpr como eu crio um novo projeto nesse formato ?

e depois na parte "6.Executando e Salvando os arquivos dentro do (.res), (EXTRA.EXE) e (EMAIL.EXE). Vou explicar no própio código" esses codigos eu coloko onde ??

 

Por favor respondam

 

eu preciso muito

 

fazer isso

 

vlw t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.