Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Iso Datei über Lan downloaden - Programm? (https://www.delphipraxis.net/66007-iso-datei-ueber-lan-downloaden-programm.html)

Diedangel 23. Mär 2006 12:46


Iso Datei über Lan downloaden - Programm?
 
Hallo zusammen,

hab per Suche nix in der art gefunden, was mich weiter bringen könnte, sorry wenn ich eine ähnliche Frage übersehen hab.

Gleich mal im voraus, ich hab Null Ahnung vom programmieren mit Delphi. Wollte euch fragen ob folgendes Programm schwierig wäre zu erstellen:

Ich möchte das auf klick von „Download.exe“ eine Datei mit immer gleich bleibendem Pfad und Namen (z.B. http://blahblah/Datei.iso) die ISO-Datei in einen vorgegebenen Ordner, welcher auch immer gleich ist, gespeichert wird (z.B. D:\Arbeiten\).

Schwierig sowas zu machen? Wenns nicht arg zu viel Arbeit macht wäre es auch net wenn ihr mir ein klein wenig mit dem code helfen könntet. Also wie das ganze aufgebaut wird.

Danke schon mal im voraus.

Gruß Diedangel

Luckie 23. Mär 2006 12:49

Re: Iso Datei über Lan downloaden - Programm?
 
Sollte realtiv einfach mit urldownloadtofileurldownloadtofile machbar sein.

Diedangel 23. Mär 2006 13:05

Re: Iso Datei über Lan downloaden - Programm?
 
Hi,
danke für die schnelle Antwort.
Wie gesagt bin ich totaler Neuling in Delphi. Hab mir das Programm auch noch nicht angeschaut und werd mir heut erst Abend die Testversion, welche es auf borland-delphi gibt, downloaden.

Beantwortet sich da die Frage von selbst --> Wo welcher Quellcode hinkommt <-- oder braucht man doch ein wenig mehr Erfahrung?

Danke Gruß Diedangel

fkerber 23. Mär 2006 13:08

Re: Iso Datei über Lan downloaden - Programm?
 
Hi!

Unter http://www.dsdt.info/tutorials/?cat=1 findest du ein paar Einsteiger-Tipps.


Ciao Frederic

Diedangel 23. Mär 2006 13:12

Re: Iso Datei über Lan downloaden - Programm?
 
hey super, danke für den Link.
Das hilft mir auf alle fälle weiter.

gruß Diedangel

Diedangel 27. Mär 2006 16:55

Re: Iso Datei über Lan downloaden - Programm?
 
Zitat:

Zitat von Luckie
Sollte realtiv einfach mit urldownloadtofileurldownloadtofile machbar sein.

Hi,
ich nochmal.

Von wegen einfach...wenn ich das nun so mache wie in diesem Beitrag beschrieben habe ich lauter ERRORS und besonders viele im Implementation-Teil :evil:
Was mach ich falsch?

Bitte um Hilfe :hello:

Balu der Bär 27. Mär 2006 16:57

Re: Iso Datei über Lan downloaden - Programm?
 
Wie lauten denn die Fehler genau ? Zeig am besten mal deinen Code.

Diedangel 27. Mär 2006 17:33

Re: Iso Datei über Lan downloaden - Programm?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
unit Unit1;

interface

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

type
  cDownloadStatusCallback = class(TObject,IUnknown,IBindStatusCallback)
  private
    function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
    function _AddRef: Integer; stdcall;
    function _Release: Integer; stdcall;
    function OnStartBinding(dwReserved: DWORD; pib: IBinding): HResult; stdcall;
    function GetPriority(out nPriority): HResult; stdcall;
    function OnLowResource(reserved: DWORD): HResult; stdcall;
    function OnProgress(ulProgress, ulProgressMax, ulStatusCode: ULONG; szStatusText: LPCWSTR): HResult; stdcall;
    function OnStopBinding(hresult: HResult; szError: LPCWSTR): HResult; stdcall;
    function GetBindInfo(out grfBINDF: DWORD; var bindinfo: TBindInfo): HResult; stdcall;
    function OnDataAvailable(grfBSCF: DWORD; dwSize: DWORD; formatetc: PFormatEtc; stgmed: PStgMedium): HResult;
  stdcall;
    function OnObjectAvailable(const iid: TGUID; punk: IUnknown): HResult; stdcall;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  usercancel: Boolean = False;

implementation
   function cDownloadStatusCallback._AddRef: Integer;
begin
  Result := 0;
end;

function cDownloadStatusCallback._Release: Integer;
begin
  Result := 0;
end;

function cDownloadStatusCallback.QueryInterface(const IID: TGUID; out Obj): HResult;
begin
  if(GetInterface(IID,Obj)) then
  begin
    Result := 0 
  end else
  begin
    Result := E_NOINTERFACE;
  end;
end;

function cDownloadStatusCallback.OnStartBinding(dwReserved: DWORD; pib: IBinding): HResult;
begin
  Result := S_OK;
end;

function cDownloadStatusCallback.GetPriority(out nPriority): HResult;
begin
  Result := S_OK;
end;

function cDownloadStatusCallback.OnLowResource(reserved: DWORD): HResult;
begin
  Result := S_OK;
end;

function cDownloadStatusCallback.OnStopBinding(hresult: HResult; szError: LPCWSTR): HResult; stdcall;
begin
  Result := S_OK;
end;

function cDownloadStatusCallback.GetBindInfo(out grfBINDF: DWORD; var bindinfo: TBindInfo): HResult; stdcall;
begin
  Result := S_OK;
end;

function cDownloadStatusCallback.OnDataAvailable(grfBSCF: DWORD; dwSize: DWORD; formatetc: PFormatEtc; stgmed: PStgMedium): HResult;
begin
  Result := S_OK;
end;

function cDownloadStatusCallback.OnObjectAvailable(const iid: TGUID; punk: IUnknown): HResult; stdcall;
begin
  Result := S_OK;
end;

function cDownloadStatusCallback.OnProgress(ulProgress, ulProgressMax, ulStatusCode: ULONG; szStatusText: LPCWSTR): HResult;
begin
  case ulStatusCode of
    BINDSTATUS_FINDINGRESOURCE:
    begin
      Form1.Label1.Caption := 'Datei wurde gefunden...';
      if (usercancel) then
      begin
        Result := E_ABORT;
        exit;
      end;
    end;
    BINDSTATUS_CONNECTING:
    begin
      Form1.Label1.Caption := 'Es wird verbunden...';
      if (usercancel) then
      begin
        Result := E_ABORT;
        exit;
      end;
    end;
    BINDSTATUS_BEGINDOWNLOADDATA:
    begin
      Form1.Gauge1.Progress := 0;
      Form1.Label1.Caption := 'Der Download wurde gestartet...';
      if (UserCancel) then
      begin
        Result := E_ABORT;
        exit;
      end;
    end;
    BINDSTATUS_DOWNLOADINGDATA:
    begin
      Form1.Gauge1.Progress := MulDiv(ulProgress,100,ulProgressMax);
      Form1.Label1.Caption := 'Datei wird heruntergeladen...';
      if (UserCancel) then
      begin
        Result := E_ABORT; exit;
      end;
    end;
    BINDSTATUS_ENDDOWNLOADDATA:
    begin
      Form1.Label1.Caption := 'Download wurd beendet...';
    end;
  end;
  Application.ProcessMessages;

  Result := S_OK;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  cDownStatus : cDownloadStatusCallback;
begin
  cDownStatus := cDownloadStatusCallBack.Create;
  try
   URLDownloadToFIle(nil,'http://www.google.de/index.html',
     'C:\index.html',0,CDownStatus);
  finally
    cDownStatus.Free;
  end;
end;

end.

generic 27. Mär 2006 20:13

Re: Iso Datei über Lan downloaden - Programm?
 
tu mal dein form um ein label erweitern und tu einen button hinzu.

Diedangel 28. Mär 2006 11:25

Re: Iso Datei über Lan downloaden - Programm?
 
:roll: ähm wär net wenn erklären könntest wo ich das mach...also Button weiß ich...aber das mit der "Form" :?:
und der Button läßt sich ja zuvor nicht erstellen
sorry bin wie oben schon erwähnt total neu im Delphi


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz