So erstellen Sie eine exe, die beim Ausführen von der Serverliste zum Öffnen von Dateien entfernt wird (von einer Freigabe ausgehend)

8

Ich muss eine Exe machen, die von einer Windows-Serverfreigabe gestartet wird. Sobald die Anwendung ausgeführt wird, sollte sie aus der Liste der geöffneten Dateien der Server verschwinden.

Zum Beispiel habe ich diese einfache Delphi-Quelle als Test - sie kompiliert zu einer kleinen 28k-EXE-Datei, die einfach auf Benutzereingaben wartet, wenn sie aufgerufen wird. Während die Anwendung ausgeführt wird, erscheint sie auf der Liste der geöffneten Dateien der Server. Ich habe bereits versucht, PEFlags IMAGE_FILE_NET_RUN_FROM_SWAP und IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP:

zu setzen %Vor%     
Peter Sawatzki 26.07.2011, 11:28
quelle

1 Antwort

1

Es scheint, als ob IMAGE_FILE_NET_RUN_FROM_SWAP (oder IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP ) Windows mitteilt, dass es die gesamte EXE in den Arbeitsspeicher laden soll (unterstützt durch die Auslagerungsdatei). Dies bedeutet nicht, dass es kopiert und dann von der lokalen Festplatte ausgeführt wird, es verhindert lediglich, dass später Seitenfehler auftreten, die den Zugriff auf die Freigabe verursachen (möglicherweise nach dem Aufheben der Bereitstellung; siehe hier ). Das bedeutet wiederum, dass die Datei auf der Netzwerkfreigabe noch geöffnet ist, solange die Freigabe verbunden ist und die Datei ausgeführt wird.

MSDN sagt dies über IMAGE_FILE_NET_RUN_FROM_SWAP :

  

Wenn das Image im Netz ist, kopieren und starten Sie es aus der Auslagerungsdatei.

Ich würde kopieren als Kopie in Speicher interpretieren, nicht als Kopie auf Platte .

Wenn also niemand den Job für Sie erledigt, tun Sie es einfach selbst: Kopieren Sie Ihre Datei und führen Sie sie aus:)

    
Heinrich Ulbricht 26.07.2011 12:12
quelle

Tags und Links