Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Usando Resources

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Delphi Usando Resources

    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:

    Código:
    (...)
    var
    Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    end.
    E adiocene antes de 'end.' isso:
    Código:
    {$R EMBUTIR.res} // Ou o nome do seu (.res)
    Ficando assim:
    Código:
    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.
    
    Quote
    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.':

    Código:
    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:
    Código:
    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:

    Código:
    Application.CreateForm(TForm1, Form1);
    Código:
    Application.ShowMainForm:=False; //Não mostra o programa
    Seu source deve fica +- assim:

    Código:
    program Project1;
    
    uses
    Forms,
    Unit1 in 'Unit1.pas' {Form1};
    
    {$R *.res}
    
    begin
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    Application.ShowMainForm:=False;
    Application.Run;
    end.
    Autor: lifeSample
    <<< ENGINEERING CODERZ - HACKING PROGRAMMING GROUP >>>
    msn/mail: azurus21@gmail.com

  • Font Size
    #2
    nuss otimo tuto mano...

    parabéns vlw


    sigpic


    Comment

    X
    Working...
    X