AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

EXE kopiert sich selbst...

Ein Thema von cruso · begonnen am 2. Jan 2006 · letzter Beitrag vom 2. Jan 2006
Antwort Antwort
Seite 2 von 2     12   
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#11

Re: EXE kopiert sich selbst...

  Alt 2. Jan 2006, 13:45
Geht doch gaanz einfach:
Delphi-Quellcode:
var
  f,t:file of byte;
  buf:array[1..4096] of byte;
  copied:integer;
begin
  assignfile(f,application.exename);
  assignfile(t,NEWFILENAME);
  filemode:=0;
  reset(f);
  filemode:=2;
  rewrite(t);
  while not eof(f) do
  begin
    blockread(f,buf,4096,copied);
    blockwrite(t,buf,copied);
  end;
  closefile(f);
  closefile(t);
end;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
cruso
(Gast)

n/a Beiträge
 
#12

Re: EXE kopiert sich selbst...

  Alt 2. Jan 2006, 13:48
Nein, nein...
Wie ich die Batch-Datei starte ist mir klar. Was ich mich frage ist, wie ich in dieser Datei (also der Batch-Datei) die Pfade übergebe. Also ob die $,%-Zeichen drinne sein müssen.
Oder ob das auch so gehen kann

copy "C:\\bla.exe" "D:\\bla.exe"
oder wie muss das genau aussehen? Mit ein paar Beispielen würde ich's sicherlich verstehen!
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#13

Re: EXE kopiert sich selbst...

  Alt 2. Jan 2006, 13:52
Mit der Batchdatei ist das immer schwierig, da, falls z.B. ein ä im exename vorkommt, dieses übersetzt werden muss. Viel besser ist es wenn du die EXE einfach schon im Code kopierst. Natürlich kann es auch so gehen wie du es beschrieben hast:

Code:
@echo off
echo. Kopiere...
copy "c:\bla.exe" "d:\bla.exe"
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
cruso
(Gast)

n/a Beiträge
 
#14

Re: EXE kopiert sich selbst...

  Alt 2. Jan 2006, 14:02
Ja! Es funzt! Danke für eure Hilfe!
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#15

Re: EXE kopiert sich selbst...

  Alt 2. Jan 2006, 14:45
Zitat von himitsu:
ParamStr(0), oder Application.ExeName (ersteres is aber besser, außerdem greift letzteres eh auch nur auf ParamStr zu)
Wenn du eh schon weißt, daß TApplication.ExeName lediglich ParamStr(0) verwendet, warum faselst du dann noch irgendwas von "das eine sei besser als das andere"? Es wird ein Call gespart, das macht den Braten auch nicht fett.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.034 Beiträge
 
Delphi 12 Athens
 
#16

Re: EXE kopiert sich selbst...

  Alt 2. Jan 2006, 15:29
weil es dennoch einige gibt, die lieber Application.ExeName nehmen und es das halt auch gibt ... und nur weil ich selber ParamStr(0) verwende, muß ich es ja keinem aufzwingen (schließlich kann man bei ExeName wenigstens erkennen, was da gemeint ist)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#17

Re: EXE kopiert sich selbst...

  Alt 2. Jan 2006, 15:40
Zitat von himitsu:
und nur weil ich selber ParamStr(0) verwende, muß ich es ja keinem aufzwingen
Und deshalb behauptest du, daß ParamStr(0) besser sei?

Zitat von himitsu:
schließlich kann man bei ExeName wenigstens erkennen, was da gemeint ist
Und deshalb behauptest du, daß ParamStr(0) besser sei?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.034 Beiträge
 
Delphi 12 Athens
 
#18

Re: EXE kopiert sich selbst...

  Alt 2. Jan 2006, 22:38
Und du wiederholst dich.

Delphi-Quellcode:
type
  TApplication = class(TComponent)
  private
    ...
    function GetExeName: string;
    ...
  public
    ...
    property ExeName: string read GetExeName;
    ...
  end;

...

function TApplication.GetExeName: string;
begin
  Result := ParamStr(0);
end;
Was effektiver ist, sollte wohl erkennbar sein.

Es ist ja jedem selber überlassen, was er/sie nimmt.
Aber dennoch ist der Hinweis darauf, was "besser" (nach Tempo und Codegröße) ist nicht verkehrt, da dieses ja unter Umständen die Entscheidung, was letzt Endlich genommen wird, beeinflussen kann.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#19

Re: EXE kopiert sich selbst...

  Alt 2. Jan 2006, 23:10
Application.ExeName hat den Vorteil, dass der Code dann besser lesbar ist.
Paramstr(0) hat den Vorteil, dass es einen Aufruf spart.

Was einem wichtiger ist, kann sich doch dann jeder selbst aussuchen.

Muss man darauf so herumreiten?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz