Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Auf Schreibrechte unter Win 7 prüfen (https://www.delphipraxis.net/148746-auf-schreibrechte-unter-win-7-pruefen.html)

hoika 8. Mär 2010 06:29

Re: Auf Schreibrechte unter Win 7 prüfen
 
Hallo,

im Quellcode suchen, hmmmm

-> Wingrep herunterladen
-> nach "DeleteFile" / "Delete" suchen


Heiko

Das der Code aus 2001 ist,
kannst du den eh vergessen.

Übrigens kann man per Manifest das "VirtualStore" ganz ausknipsen,
dann bekommt man garantiert einen Schreibfehler, wenn ins Programm-Verzeichnis geschrieben wird.
Das VirtualStore ist ja nur ein Hilfsmittel von MS,
damit "alte, böse" Programme auch laufen.

"böse" = "Ich schreib mal in mein eigenes Verzeichnis"



Heiko

Dezipaitor 8. Mär 2010 07:02

Re: Auf Schreibrechte unter Win 7 prüfen
 
Zitat:

Zitat von Luckie
Dumm nur, dass ein Updater in der eigentlichen Anwendung integriert ist. Das heißt seine Anwendung fordert bei jedem Start Administratorenrechte an. Auch nicht sehr toll.

Dann funktioniert der Rest auch in jedem Fall. :mrgreen:

Aber man kann über Parameter und ShellExecute auch intern die Anwendung sich selbst (als Admin) aufrufen lassen. Dann ist das Adminmanifest nicht nötig.

Luckie 8. Mär 2010 07:37

Re: Auf Schreibrechte unter Win 7 prüfen
 
Er könnte MSDN-Library durchsuchenImpersonteLoggenUser aufrufen.

Dezipaitor 8. Mär 2010 11:36

Re: Auf Schreibrechte unter Win 7 prüfen
 
Von ImpersonateLoggedOnUser kann ich nur immer abraten. Das muss man schon richtig verstehen, um damit umgehen zu können.

Da finde ich es schon einfacher mit ShellExecute und "runas"-Verb die Anwendung ein zweites Mal aufzurufen. Z.B. wenn ein Parameter "/update" angegeben wurde.

1. Anwender startet Programm
2. Programm prüft auf neue Updates
-> Wenn nicht vorhanden gehe zu 5.
3. Programm prüft, ob es Adminrechte hat
-> Wenn ja, dann gehe zu 3.
4. Startet sich selbst mit ShellExecute("runas") und beendet sich. Zweiter Prozess führt 4a aus.
4a. Prozess macht update.
Das Problem hier ist, dass du Anwendung und Installer in einer Datei hast, da es so nicht ohne weiteres möglich ist, die Anwendung ohne Adminrechte zu starten. Andernfalls hättest du im Punkt 4. einen Installer gestartet, der zwar sich selbst startet, aber den ersten Prozess nicht beendet. Dieser erste Prozess könnte die Anwendung ohne Adminrechte starten, wenn der Installer erfolgreich war. (Der Weg von Admin zu Nicht-Admin ist schwer in Windows)
5. Anwendung startet

AlexII 8. Mär 2010 11:43

Re: Auf Schreibrechte unter Win 7 prüfen
 
Ach du meine Güte, Leute ich danke euch, aber bitte nicht vergessen, ich bin Hobbyprogrammierer, hab nix studiert oder so... :roteyes:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz