Autor Beitrag
TimonWorld
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 397



BeitragVerfasst: So 10.08.03 11:53 
:D Hallo @all

Ich bin gerade dabei ein Setupprogramm zu programieren, weis jemand wie man da Dateien u. Programme kopiert????

wäre echt net :lol:
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 10.08.03 13:12 
Ich persönlich würde kein Setup-Programm schreiben. Dazu gibt es genug Alternativen: bei Delphi liegt InstallShield bei, Suche in: Delphi-Forum, Delphi-Library INNOSETUP ist auch zu empfehlen, und ich habe letztens mal mit NSIS rumgespielt und recht gute Erfahrungen gemacht.

Ansonsten, beim Kopieren von Dateien kommt eine von dir wenig geliebte Aufgabe auf dich zu: Lesen! Suche in: Delphi-Forum, Delphi-Library COPYFILE, Suche in: Delphi-Forum, Delphi-Library SHFILEOPERATION.
Pascal
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 155

Win 98, Win XP
Delphi 2005, Delphi 5
BeitragVerfasst: So 10.08.03 13:19 
Im EDH stehts auch gut beschrieben wie man Dateien kopiert.
knuffel
ontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 68

WIN XP Prof
D3 Prof, D7 Ent
BeitragVerfasst: So 10.08.03 13:23 
tach! :lol:

ich glaub ich poste hier einfach mal den entsprechenden code, so wie ich es machen würde. DATEI ist der pfad der datei, die du kopieren willst, das zielverzeichnis versteht sich von selbst. das gleiche kannst du auch mit ordnern machen.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function CopyDir(const fromDir, toDir: string): Boolean; 
var 
  fos: TSHFileOpStruct; 
begin 
  ZeroMemory(@fos, SizeOf(fos)); 
  with fos do 
  begin 
    wFunc  := FO_COPY; 
    fFlags := FOF_FILESONLY; 
    pFrom  := PChar(fromDir + #0); 
    pTo    := PChar(toDir) 
  end; 
  Result := (0 = ShFileOperation(fos)); 
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if cCopyDir('DATEI', 'ZIELVERZEICHNIS') = True then
  ShowMessage('Datei kopiert');

end;

end.
TimonWorld Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 397



BeitragVerfasst: So 10.08.03 18:12 
1. An MathiasSimmack: Bei Delphi 6 Personal lag kein InstallShield bei. :cry:
2. An Knuffel: Es funktioniert nich!!! :(

Das zeigt er unten dann an (in der Fehler-Leiste):
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
[Error] Unit1.pas(33): Undeclared identifier: 'wFunc'
[Error] Unit1.pas(34): Undeclared identifier: 'fFlags'
[Error] Unit1.pas(35): Undeclared identifier: 'pFrom'
[Error] Unit1.pas(36): Undeclared identifier: 'pTo'
[Error] Unit1.pas(38): Undeclared identifier: 'ShFileOperation'
[Error] Unit1.pas(38): Undeclared identifier: 'fos'
[Error] Unit1.pas(42): Undeclared identifier: 'cCopyDir'

Und nun :?: :?:
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: So 10.08.03 20:18 
binde die unit shellapi mit ein

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: So 10.08.03 20:38 
Wenn du die Dateien nur kopierst, schwindet der Sinn des Setup-programmes irgendwie dahin.
Versuch mal zlib mit einzubinden und dann mit compressbuf(fer???) und decompressbuf(fer?) die Datei noch zu komprimieren / zu dekomprimieren.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 10.08.03 20:41 
Siehst du, TimonWorld, das passiert, weil du nicht in der Lage bist, richtig zu lesen sondern einfach nur Code ohne Sinn und Verstand kopierst. In knuffels Code steht´s eindeutig drin:
knuffel hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, { --> } shellapi { <-- };

Und genau die gleiche Unit ist für den Erfolg mit ShellExecute zuständig. Wenn du die Beiträge aufmerksam gelesen hättest, wüsstest du das mittlerweile auch.

Ansonsten folge bitte den Links zu InnoSetup oder NSIS. Die kosten beide nichts und sind relativ einfach zu bedienen und erfüllen ihren Zweck sehr gut.
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: So 10.08.03 20:43 
TimonWorld hat folgendes geschrieben:
:D Hallo @all

Ich bin gerade dabei ein Setupprogramm zu programieren, weis jemand wie man da Dateien u. Programme kopiert????

wäre echt net :lol:



scheinbar will er selbst eins programmieren. WEnn er will, lass ihn doch!
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 10.08.03 20:49 
Ich bitte dich, ich habe nur meine Meinung geäußert. Ich würde mir die Arbeit nicht machen und ein Setup-Programm schreiben, wenn es genug Alternativen gibt.

Ob er meinem Rat folgt oder nicht, das ist allein seine Sache.
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 11.08.03 16:43 
MathiasSimmack hat folgendes geschrieben:
Ansonsten folge bitte den Links zu InnoSetup oder NSIS. Die kosten beide nichts und sind relativ einfach zu bedienen und erfüllen ihren Zweck sehr gut.


Das hört sich aber nicht danach an.
recall
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 449



BeitragVerfasst: Mi 13.08.03 18:43 
@MathiasSimmack:

Hmm... aha also dann gib mir mal ein Standard-Setup-Programm,
das folgende gar nicht so abwegige Funktionen hat (so eins brauchte ich, da hab ich mir selber eines geschrieben):

- Installation von DirectX überprüfen (Version).
- Freien Festplattenplatz angeben und benötigt (kennt man ja)
- Bei Bedarf sich Teile aus dem Internet ziehen, wenn die Install-Komponenten nich vollständig sind.
- Diese Install-Kompos sind übrigens gezippt ;)

Also ?
Viele Grüsse.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 14.08.03 09:47 
Microsoft Installer bspw. Kostet auch nichts, wenn man bereit ist, sich mit den Tools von Microsoft zu befassen. :roll: (Download der Doku und Tools im PSDK -> Windows Installer SDK).
recall
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 449



BeitragVerfasst: Do 14.08.03 13:52 
OK, wenn das alles kann, dann entschuldige ich mich doch für meine satirische Antwort...

Habs mir jetzt nicht mehr angeschaut, hab ja schon ein Setup-Prg ;) .
Das hat auch nur 1 1/2 h gedauert :) und ich habe was dazu gelernt.

Viele Grüsse.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 14.08.03 14:52 
Satire ist was anderes. Aber ich nehm´s dir nicht übel - du lernst das auch noch.
TimonWorld Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 397



BeitragVerfasst: So 17.08.03 11:16 
Was meint Matthias mit 'Download der Doku und Tools im PSDK -> Windows Installer SDK' ???