Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Überprüfen ob das Programm aus einem Archiv ausgeführt wird (https://www.delphipraxis.net/174349-ueberpruefen-ob-das-programm-aus-einem-archiv-ausgefuehrt-wird.html)

Darlo 18. Apr 2013 12:37

Delphi-Version: XE2

Überprüfen ob das Programm aus einem Archiv ausgeführt wird
 
Hallo zusammen,

gibt es eine Möglichkeit zu prüfen ob ein Programm aus einer ZIP-Datei ohne vorher entpackt zu werden ausgeführt wird?
WinRar kann ja in den Archive schreiben, ansonsten hätte ich einfach auf Schreibrecht geprüft.

Gruß

Bummi 18. Apr 2013 12:42

AW: Überprüfen ob das Programm aus einem Archiv ausgeführt wird
 
Liste der Anhänge anzeigen (Anzahl: 1)
Vielleicht kannst Du damit was anfangen?

Delphi-Quellcode:
Caption := paramstr(0);

Darlo 18. Apr 2013 12:45

AW: Überprüfen ob das Programm aus einem Archiv ausgeführt wird
 
Zitat:

Zitat von Bummi (Beitrag 1211927)
Vielleicht kannst Du damit was anfangen?

Delphi-Quellcode:
Caption := paramstr(0);

Danke, wusste zwar, dass unter TEMP ein Verzeichnis angelegt wird, bin nur nicht auf die Idee gekommen den Programmpfad zu prüfen!
Nochmal danke.

Gruß

jaenicke 18. Apr 2013 13:01

AW: Überprüfen ob das Programm aus einem Archiv ausgeführt wird
 
Da man das Verzeichnis auch ändern kann, ist das kein sicherer Indikator.
Man könnte zusätzlich noch den Elternprozess auf bekannte Packer prüfen. Da man dort auch Dateien starten kann, die nicht aus einem Archiv kommen, und der Elternprozess schon weg sein kann, ist aber das auch nicht sicher.

Ich frage mich allerdings auch wozu das dienen soll. Wenn dann notwendige Dateien fehlen, merkt man das doch ohnehin und wenn nicht, sollte es doch egal sein. :gruebel:

Darlo 18. Apr 2013 13:12

AW: Überprüfen ob das Programm aus einem Archiv ausgeführt wird
 
Damit wird nicht jeden Tag das selbe am Telefon beantworten müssen ;-)
Ausserdem wird wohl bei jedem Aufruf aus dem Archiv ein neuer Tempodner erstellt und somit augenscheinlich Einstellunden die im Programmordner gespeichert werden nicht übernommen.

Kalakmul 18. Apr 2013 13:58

AW: Überprüfen ob das Programm aus einem Archiv ausgeführt wird
 
@jaenicke

Die Frage von Darlo interessiert mich auch. Könntest Du das mit dem Elternprozess noch ein wenig genauer erklären? Kenne mich damit überhaupt nicht aus.

Nur, wenn es nicht zu viel Mühe macht! Danke!

jaenicke 18. Apr 2013 19:33

AW: Überprüfen ob das Programm aus einem Archiv ausgeführt wird
 
Zitat:

Zitat von Darlo (Beitrag 1211932)
Ausserdem wird wohl bei jedem Aufruf aus dem Archiv ein neuer Tempodner erstellt und somit augenscheinlich Einstellunden die im Programmordner gespeichert werden nicht übernommen.

Das ist richtig. Aber es ist auch für keine gute Idee Einstellungen in das eigene Verzeichnis zu speichern. Abgesehen davon, dass da meistens ohnehin keine Schreibrechte vorhanden sind, passiert dann eben so etwas.
Das sehe ich eher als Programmier- denn als Bedienfehler...

Zitat:

Zitat von Kalakmul (Beitrag 1211936)
Die Frage von Darlo interessiert mich auch. Könntest Du das mit dem Elternprozess noch ein wenig genauer erklären? Kenne mich damit überhaupt nicht aus.

Das geht via WMI recht einfach. Dort ist der Elternprozess in der Prozessliste als ParentProcessId dabei.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:48 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