Delphi-PRAXiS
Seite 7 von 10   « Erste     567 89     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   TRegistry Unterschied zwischen Delphi 7 und 2009 (https://www.delphipraxis.net/184986-tregistry-unterschied-zwischen-delphi-7-und-2009-a.html)

Popov 7. Mai 2015 13:50

AW: TRegistry Unterschied zwischen Delphi 7 und 2009
 
Womit sich die Frage stellt was vor einem Monat passiert ist?

Gehen wir mal davon aus, dass der Fehler nicht im Code ist, denn sonst würde auch mein Dreizeiler nicht funktionieren, muss das Problem irgendwo anders liegen.

Hättest du Probleme eine Datei zu erstellen, wäre die Sache klar, das liegt an den Rechten des Kontos über den Ordner. Übrigens, man kann auch die Rechte von Administratoren reduzieren, nur das schöne ist, sie können sich, soweit man sich wiederum nicht das Recht Rechte zu ändern entzogen hat, die Rechte wieder geben. Also Administrator-Rechte alleine sagen nichts auf. Auf der anderen Seite hast du ein Bild gepostet und danach sollte alles ok sein.

Übrigens, fast ähnlich wie im Explorer, kann man auch Rechte in Regedit vergeben und entziehen. Es wäre somit interessant zu sehen was die einzelnen User für Rechte in Regedit haben.

Kommen wir von FAT32 Lw D: zu NTFS Lw C:. Erstellst du das Programm auf Lw D:, erstellst du es im Grunde unter dem Benutzer "Jeder". Kopierst du es (nicht verschieben) auf Lw C:, müssten im Grunde die Rechte des aktuellen Nutzers angenommen werden.

Kommen wir zu einer unwahrscheinlichen aber durchaus möglichen Möglichkeit. Ich beziehe mich hier auf die unterschiedlichen Dateien unter Lw D: und Lw C:. Theoretisch könnte ja sein, dass man keine Leserechte an einer Unit hat. Das Problem wäre in dem Fall nicht der Ordner in dem du etwas kompilierst, sondern der Zugriff auf einen anderen Ordner, z. B. in Programme. Die Möglichkeit hat aber einen Hacken: ich dem Fall dürftest du auch nicht korrekt auf Lx D: kompilieren.


Ich empfehle dir noch einen Test. Geh unter Systemsteuerung auf Benutzer. Erstelle zwei Konten. Das eine Shark99A mit Standardrechten. Dabei geht nichts kaputt, du kannst das Konto anschließend inkl. erstellte Dateien wieder löschen. Dann erstellst du noch ein zweites Konto, Shark99B, mit Administratorrechten. Geh dann auf "Einstellung der Benutzerkontensteuerung" und stelle alles runter (es wird nichts mehr geblockt).

Sollte das das Programm bereits mit Shark99A funktionieren, ist in deinem Standardkonto etwas mit den Rechten durcheinander. Sollte es bei Shark99B funktionieren, wird da etwas geblockt.

p80286 7. Mai 2015 14:14

AW: TRegistry Unterschied zwischen Delphi 7 und 2009
 
Zitat:

Zitat von Popov (Beitrag 1300635)
Kommen wir von FAT32 Lw D: zu NTFS Lw C:. Erstellst du das Programm auf Lw D:, erstellst du es im Grunde unter dem Benutzer "Jeder". Kopierst du es (nicht verschieben) auf Lw C:, müssten im Grunde die Rechte des aktuellen Nutzers angenommen werden.

Das ist nicht ganz korrekt! Bei der Kopie von einem FAT-Laufwerk werden wie auch sonst die (NTFS-)Rechte des Zielverzeichnisses eingetragen (Bei FAT->NTFS gilt das auch für's Verschieben!). Auch wenn die "Dateieigenschaften" jeder als Bestzer vorgaukeln, ist der aktuelle Benutzer Besitzer der kopierten Datei.

Gruß
K-H

Shark99 10. Mai 2015 00:40

AW: TRegistry Unterschied zwischen Delphi 7 und 2009
 
Habe einen neuen Admin-User erstellt und er hat genau das gleiche Problem. Habe dazu noch bemerkt dass es sich nicht nur um ein Registry Problem handelt, sondern Dateien können auch nur gelesen, aber nicht geschrieben werde. D.h. eine Exe die von einem Verzeichnis gestartet wird, bei dem der Parent nicht älter als 07.04.2015 ist hat nur Lesezugriff auf die gesamte Festplatte. Ich werde wohl um eine Neuinstallation von Windows drin drumherum kommen. Warte aber wohl noch auf Windows 10.

Luckie 10. Mai 2015 00:53

AW: TRegistry Unterschied zwischen Delphi 7 und 2009
 
Ich blicke nicht mehr durch. Könntet du mal bitte eine Zusammenfassung der bisherigen Erkenntnisse verfassen?

Aber wenn es um die Registry geht, spielen doch Verzeichnisrechte keine Rolle. :roll: Guck dir mal in der Registry an wer welche Rechte für den Schlüssel hat.

Shark99 10. Mai 2015 01:21

AW: TRegistry Unterschied zwischen Delphi 7 und 2009
 
Zusammenfassung aller Erkenntnisse:

- es handelt sich nicht um ein Delphi Problem, sondern ein Windows Problem und muss am 07.04.2015 bei mir passiert sein
- ich bin als Admin-user eingelogt, kann mit dem Explorer alle Programme starten, kopieren, Dateien löschen etc, auch in Systemverzeichnissen
- Anlegen eines zweiten Admin-Accounts hilft nicht
- das folgende Problem betrifft nur c:\, mit d:\ geht alles wunderbar (andere Partition auf gleicher SSD)

Problem: Wenn eine beliebige Executable (also auch notepad.exe) aus einem Verzeichnis ausgeführt wird dessen Parent-Verzeichnis nach dem 07.04.2015 erstellt wurde, hat diese App nur Leserechte und zwar sowohl für die Registry als auch beim Schreiben von Dateien.

Beispiel a: 1. c:\ordner1 wird erstellt 2. notepad.exe hin kopiert und gestartet 3. Datei -> Speichern als -> My Documents: Notepad meldet dass ich keine Zugriffsrechte zum Speichern habe. Rechtsklick auf notepad.exe und 'Run as administrator' bringt gleiches Ergebnis.

Beispiel b: alles wie im Beispiel a, aber Ordner nicht c:\ordner1 sondern c:\windows\ordner1 und es treten keinerlei Probleme auf, weil c:\windows VOR dem 07.04.2015 erstellt wurde.

Ich habe mittlerweile 10 Stunden gegoogelt und das Problem nicht noch einmal gefunden. Also bleibt wohl nur Neuinstallation. :roll:

Popov 10. Mai 2015 01:29

AW: TRegistry Unterschied zwischen Delphi 7 und 2009
 
Du hast einen zweiten Admin-Konto erstellt. Hast du das Ganze auch mit einem Standard-Konto getestet?

Hier gilt nicht Admin = mehr Rechte, also kann man sich das Standard-Konto sparen.

Shark99 10. Mai 2015 01:37

AW: TRegistry Unterschied zwischen Delphi 7 und 2009
 
Ja, hatte auch einen normalen User erstellt, dieser hatte aber das Problem auch.

Popov 10. Mai 2015 03:04

AW: TRegistry Unterschied zwischen Delphi 7 und 2009
 
Wenn du Lust hast, noch ein Test. Lade und installiere mal das Tool Attribute Changer. Damit kannst du nicht nur Attribute ändern, sondern auch die Datum-/Zeitangaben für Ordner/Dateien. Ändere das Datum eines der Ordner auf ein Tag vor dem 07.04.2015.

Achso, solltest du das Programm installieren, es fügt ein Eintrag in das Kontextmenü des Explorers.

jaenicke 10. Mai 2015 09:27

AW: TRegistry Unterschied zwischen Delphi 7 und 2009
 
Wie schon gesagt:
Das einzig sinnvolle um wirklich festzustellen wo der Unterschied liegt, ist den Process Monitor zu starten und nachzuschauen...

Shark99 10. Mai 2015 23:15

AW: TRegistry Unterschied zwischen Delphi 7 und 2009
 
Zitat:

Zitat von Popov (Beitrag 1300911)
Wenn du Lust hast, noch ein Test. Lade und installiere mal das Tool Attribute Changer. Damit kannst du nicht nur Attribute ändern, sondern auch die Datum-/Zeitangaben für Ordner/Dateien. Ändere das Datum eines der Ordner auf ein Tag vor dem 07.04.2015.

Achso, solltest du das Programm installieren, es fügt ein Eintrag in das Kontextmenü des Explorers.

Hab das Datum mit Total Commander auf 01.01.2014 geändert. Keine Änderung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr.
Seite 7 von 10   « Erste     567 89     Letzte »    

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