Delphi-PRAXiS

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

Jelly 28. Mär 2006 20:22

Re: Iso Datei über Lan downloaden - Programm?
 
Ich denk mal, lies Dir erst ein paar Tutorials durch, und stell dann deine konkreten Fragen. Bis dahin, klappt folgender Code sicherlich auch, als ALternative zu "DeCodeGuru":

uses shellapi ;

Delphi-Quellcode:
procedure Download (URL : string) ;
begin
   ShellExecute (nil,'open',PChar(URL),nil,nil,SW_SHOWNORMAL) ;
end ;
Aufruf durch:
Delphi-Quellcode:
Download ('http://Server/DeineDatei.iso') ;

Neophyte018 30. Mär 2006 16:37

Re: Iso Datei über Lan downloaden - Programm?
 
Hallo,

ich habe das gleiche Programm und bin auch ein blutiger Anfänger auf dem Gebiet.
Kann mir das bitte nicht jemand genau erklären wie das geht oder was noch besser wäre wenn mir jemand so ein Programm schreiben könnte.


Danke schon mal im voraus

Die Muhkuh 30. Mär 2006 16:45

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

Zitat von Neophyte018
Hallo,

ich habe das gleiche Programm und bin auch ein blutiger Anfänger auf dem Gebiet.
Kann mir das bitte nicht jemand genau erklären wie das geht oder was noch besser wäre wenn mir jemand so ein Programm schreiben könnte.


Danke schon mal im voraus

Hi,

schreiben wird dir so ein Programm keiner ;)

Wenn du aber genaue Fragen stellt, was du nicht verstehst, sind wir gerne bereit, dir zu helfen :)

btw: Herzlich Willkommen in der DP :dp: :)

Neophyte018 30. Mär 2006 16:53

Re: Iso Datei über Lan downloaden - Programm?
 
es wäre mir sehr geholfen wenn ich eine genaue Anleitung bekommen würde wo ich die ganzen cods hin schreiben soll und ob das egal ist ob ich erst das Design oder erst die Cods machen soll.
Wo ich die einzelnen Codes hin schreiben soll ?
Was ich als neuen Unit öffnen soll also Win 32 oder Form usw. ?
Es wäre auch net wenn mir jemand ein Erklärungs tutorial nen kann wo ich mal ein paar Grundkenntnise bekommen kann habe schon im Internet geschaut aber nichts Hilfreiches gefunden.

Also auf gut deutsch gesagt am besten von 0 auf mir genau erklären was ich machen muss damit ich das Programm Programmieren kann.

Oder was besimmt auch hilfrei ist wenn mir jemand ein kleinses Tutoeial geben kann wo ich ein ganz kleines Programm schreiben kann mit demm ich dann rum Experimentieren kamm

Wie schon gesagt ich bin Anfänger mit keinen Programmier kenntnise.

Danke

Die Muhkuh 30. Mär 2006 17:19

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

Zitat:

Es wäre auch net wenn mir jemand ein Erklärungs tutorial nen kann wo ich mal ein paar Grundkenntnise bekommen kann habe schon im Internet geschaut aber nichts Hilfreiches gefunden
Hier gibts echt gute Tutorials: http://www.dsdt.info/grundlagen/


Wenn du dann mal ein paar Sachen durchgelesen und auch verstanden hast, erübrigt sich deine Frage wahrscheinlich von alleine. Wenn nicht, kannst du einfach nochmal nachfragen (wäre dann aber gut, wenn du einen eigenen Thread aufmachen würdest)

inherited 30. Mär 2006 19:23

Re: Iso Datei über Lan downloaden - Programm?
 
Ich nehme an du hast einfach den Code aus dem Tutorial über deinen eigenen Kopiert? Das sollte man nicht machen!
Du könntest die datei über http downloaden. Du brauchst dafür die Bei Google suchenIndys. Du nimmst ein TIdHTTP und holst dir die datei mit z.b.
Delphi-Quellcode:
  procedure TForm1.Timer1Timer(Sender: TObject);
  var FileStream: TFileStream;
  begin
    FileStream := TFileStream.Create('D:\Arbeiten', fmCreate);
    IdHTTP1.Get('http://blahblah/Datei.iso', FileStream);
    FileSTreamStream.free;
  end;
//ausn fingern geschrieben keine garantie wegen fehlern


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 Uhr.

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