Announcement

Collapse
No announcement yet.

Wie kann ich Exe löschen während sie gestartet ist ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie kann ich Exe löschen während sie gestartet ist ?

    Ich möchte eine Deinstallationsroutine schreiben und hänge nun an dem
    Punkt das sie sich selber löschen soll. Wie kann ich das bewerkstelligen.

  • #2
    Das läßt Windows nicht zu, auch das verschieben in den Papierkorp funzt nicht, versuch es doch mal mit dem Registry Zweig Software\microsoft\Windows\currentversion\RunOnce Einträge die man dort vornimmt werden beim start ausgeführt und dann entfernt. Dann kann man ja eine Meldung der Art "Deinstallation erfolgreich, verbleibende Einträge werden beim nächsten Systemstart automatisch entfernt" oder wie auch immer

    Comment


    • #3
      Hi

      Versuchs mal mit einer herkömmlichen Batch-datei, *.bat, die Du aus dem Programm herraus anlegts, inder die EXE gelöscht wird. Starten mit WinExec etc. und nach dem Start gleich löschen, dann EXE beenden.

      Gruß Hage

      Comment


      • #4
        Hallo,

        wenn die Anwendung nur unter NT/2000 ausgeführt wird, steht dazu die API-Funktion <b>MoveFileEx</b> zur Verfügung. Wird das Flag MOVEFILE_DELAY_UNTIL_REBOOT angegeben, so darf als Zielverzeichnis <b>nil</b> verwendet werden, so dass Windows diese Datei beim nächsten Booten löscht. Mit diesem Aufruf setzt das Betriebssystem den Registry-Eintrag für das Löschen beim nächsten Start automatisch

        Comment


        • #5
          Hi Mädels!
          Unter Win95 ist es möglich mit der API-Fkt. DeleteFile eine geöffnete Datei zu löschen.....klappt allerdings nicht unter NT

          Comment


          • #6
            Hi

            Ich weiß nicht woher Du diese Weisheit hast, aber das kann nicht sein, bzw. ich habe es ausprobiert, eine kleine EXE gebastelt und diese mit DeleteFile(PChar(ParamStr(0))) aus sich selbst herraus versucht zu löschen. hat NICHT funktioniert. Wäre auch zu dumm, da dies bedeuten würde das das Filelocking von Windows ÜBERHAUPT NICHT funktioniert. Aber schon zu DOS'en Zeiten ging dies NICHT.

            Gruß Hage

            Comment


            • #7
              Hallo Hagen,

              unter Windows 95 war DeleteFile tatsächlich in der Lage, geöffnete Dateien zu löschen, allerdings galt dies <b>nicht</b> für die eigenen ausführbaren Module (DLL/EXE). Microsoft hat dazu in seiner KnowlegdeBase entsprechende Warnungen veröffentlicht. Somit ist der Einwand von Memger zwar rein formal richtig, aber in diesem Kontext falsch

              Comment


              • #8
                Hi Andreas

                Kannst Du mir sagen wo dies veröffentlicht wurde ? URL ?

                Gruß Hage

                Comment


                • #9
                  Hallo Hagen,

                  ich habe diesen Hinweis zum ersten Mal im Microsoft Press-Buch "Windows-Programmierung für Experten" von Jeffrey Richter (Ausgabe 1995) gelesen. Und da ich dies für so gravierend gehalten habe, erinnere ich mich sogar noch heute an die Seitenanzahl: Seite 639 ;-

                  Comment


                  • #10
                    Hi Andreas

                    Wenn Du das noch so genau weißt,
                    mich interessiert WAS für gesperrte Dateien gelöscht werden können.
                    ALLE gelockten, oder nur readonly geöffnete mit shared locking, oder sogar private gelockte und writable access ?

                    Gruß Hage

                    Comment


                    • #11
                      Hallo Hagen,

                      in diesem Punkt ist Jeffrey nicht ins Detail gegangen, eventuell um keinen Ärger mit seinem Arbeitgeber zu provozieren ;-

                      Comment

                      Working...
                      X