Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#18

Re: Henne Ei Problem - eigene EXE löschen

  Alt 2. Jun 2009, 17:17
Moin !

Hmm das geht aber dennoch nicht. Das Verzeichnis bleibt:
Delphi-Quellcode:
function DeleteSelf(): Boolean;
var
  F : File of Byte;
  FP,
  Params : String;
  BatText : String;
begin
  BatText := ':loop'                   + #13#10+
             'ping localhost'          + #13#10+
             'del /F "%s"'             + #13#10+
             'if EXIST "%s" goto loop' + #13#10+
             'RD "' + ExtractFilePath(ParamStr(0)) + '"' + #13#10 +
             'del /F "%s"'             ;

  Result := False;
  FP := 'C:\Program Files\'; //ExtractFilePath( ParamStr(0) );
  {$i-} 
  AssignFile( F, FP + '_.bat' );
  Rewrite( F );
  Params := Format( BatText, [ParamStr(0), ParamStr(0), FP + '_.bat'] );
  BlockWrite( F, Params[1], Length(Params) );
  CloseFile( F );
  {$i+} 
  if not( IOResult = ERROR_SUCCESS ) then
    Exit;
  Result := ShellExecute( 0, 'open', pChar( FP + '_.bat' ), nil, nil, 1 ) > 32;
end;
Ich habe das Verzeichnis für die BAT mal hart kodiert.
Aber das Verzeichnis bleibt bestehen wenn ich es aus dem Programm raus starte.
Starte ich die Batch alleine, geht es sauber.
Merkwürdig ...
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat