AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ini Datei ohne admin zu sein

Ein Thema von yogie · begonnen am 14. Aug 2013 · letzter Beitrag vom 14. Aug 2013
Antwort Antwort
Seite 1 von 2  1 2      
yogie

Registriert seit: 11. Sep 2003
Ort: bei Goslar
213 Beiträge
 
Delphi 6 Professional
 
#1

ini Datei ohne admin zu sein

  Alt 14. Aug 2013, 08:35
Hallo zusammen,

mein Programm verwendet INI-Dateien. Beim Schließen des Programms
(onClose der Main-Form) werden einige INI Daten geschrieben. Das klappt alles
problemlos, solange das Programm mit Administrator-Rechten läuft. Sobald
es ohne Administrator-Rechte läuft gibt es Probleme. Die INI Daten werden beim
Schließen sauber geschrieben, ich kann die Datei hinterher kontrollieren.
Danach meldet das Programm aber einen Fehler beim Schreiben der INI-Datei.

Die Fehlermeldung verweist auf eine Datei „program.ini“. Ich habe dann den von mir erzeugten Namen der Ini-Datei in „program.xxx“ verändert. Die Fehlermeldung verweist
aber immer noch auf „program.ini“. Es ist sichergestellt, das Schreibrechte für das Verzeichnis bestehen. Ich habe das gesamte Programm nach übersehenen Schreibbefehlen durchsucht und nichts weiter gefunden. Alle Zugriffe auf INI-Dateien sind in einer zentralen UNIT zusammengefaßt.

Hat jemand einen Tip?
Kompatibilität ist ein Euphemismus für n i c h t einhunderprozentige Austauschbarkeit
http://b-und-l-service.de/
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.588 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: ini Datei ohne admin zu sein

  Alt 14. Aug 2013, 08:40
Wohin schreibst du die denn? In das Verzeichnis deiner .exe wie bei Windows 9x? Das ist seit mehr als 10 Jahren ein Programmierfehler (von ganz wenigen Ausnahmen mal abgesehen).
Mehr dazu habe ich hier geschrieben:
http://www.delphi-library.de/viewtopic.php?p=548600

Was dein konkretes Problem angeht:
Das solltest du beim Debuggen doch merken wo der Fehler auftritt.

Wenn das auf deinem PC nicht passiert, bleiben nur Meldungen der Art "OnClose Beginn", "OnClose Ende" usw. um festzustellen wo das passiert.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: ini Datei ohne admin zu sein

  Alt 14. Aug 2013, 08:42
Die einzige Ausnahme die ich kenne, ist eine grundlegende, sich nach der Installation nicht ändernde Konfigurationsdatei, auf die dann auch nur lesend zugegriffen wird
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
yogie

Registriert seit: 11. Sep 2003
Ort: bei Goslar
213 Beiträge
 
Delphi 6 Professional
 
#4

AW: ini Datei ohne admin zu sein

  Alt 14. Aug 2013, 08:53
@jaenicke
ich lasse mir das APPDATA Verzeichnis geben

{uses Shlobj für CSIDL_APPDATA; glDefaultPath in QVC_global}

glDefaultPath := GetSpecialFolder(CSIDL_APPDATA) + '\Firma\';
if not DirectoryExists(glDefaultPath) then
MkDirEx(glDefaultPath); {erzeugt ev. nicht vorhandenes DIR}

und lege dort ein Unterverzeichnis an. Das klappt auch.
Kompatibilität ist ein Euphemismus für n i c h t einhunderprozentige Austauschbarkeit
http://b-und-l-service.de/
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#5

AW: ini Datei ohne admin zu sein

  Alt 14. Aug 2013, 09:21
Eventuell liegt der Fehler an der Stelle wo die "program.ini" gelesen wird.
Wird das File dort auch mit Nur-Lesen geöffnet?
Wird das File auch wieder ordentlich geschlossen, bzw. freigegeben?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: ini Datei ohne admin zu sein

  Alt 14. Aug 2013, 09:29
@jaenicke
ich lasse mir das APPDATA Verzeichnis geben
Delphi-Quellcode:
    {uses Shlobj für CSIDL_APPDATA; glDefaultPath in QVC_global}

    glDefaultPath := GetSpecialFolder(CSIDL_APPDATA) + '\Firma\';
    if not DirectoryExists(glDefaultPath) then
      MkDirEx(glDefaultPath); {erzeugt ev. nicht vorhandenes DIR}
und lege dort ein Unterverzeichnis an. Das klappt auch.
Auch das AppData-Verzeichnis ist default nicht zum Schreiben für jedermann bereit, sondern muss im Rahmen der Installation dafür vorbereitet werden.

Halt, Kommando zurück, das war CSIDL_COMMON_APPDATA

BTW: Bitte nutze für Delphi-Code auch die
Code:
[DELPHI][/DELPHI]
Tags
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (14. Aug 2013 um 09:34 Uhr)
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: ini Datei ohne admin zu sein

  Alt 14. Aug 2013, 09:39
Wenn es nicht an den Schreibrechten liegt. Versuchen mehrere Formulare/ Klassen beim Beenden der App was in die INI zu schreiben?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.588 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: ini Datei ohne admin zu sein

  Alt 14. Aug 2013, 10:01
Danach meldet das Programm aber einen Fehler beim Schreiben der INI-Datei.
Wie lautet der Fehler denn? Zugriffsfehler, schon geöffnet, ...?
Und an welcher Stelle im Code kommt der?
Das müsstest du ja wie schon geschrieben im Debugger sehen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#9

AW: ini Datei ohne admin zu sein

  Alt 14. Aug 2013, 11:35
Auch das AppData-Verzeichnis ist default nicht zum Schreiben für jedermann bereit [...]
Nicht für jedermann, aber natürlich ist es ohne weitere Maßnahmen für den Benutzer schreibbar, der das Programm gerade benutzt. Der einzige Unterschied zwischen APPDATA und LOCAL_APPDATA ist, dass letzteres kein Bestandteil der Roaming Profiles ist, also in einer Domäne nicht automatisch auf den Server synchronisiert wird. Schreibbar sind aber beide für den jeweiligen Nutzer.

Aber ich sehe gerade, du hast deinen Irrtum bemerkt .

MfG Dalai
  Mit Zitat antworten Zitat
yogie

Registriert seit: 11. Sep 2003
Ort: bei Goslar
213 Beiträge
 
Delphi 6 Professional
 
#10

AW: ini Datei ohne admin zu sein

  Alt 14. Aug 2013, 12:23
Wenn es nicht an den Schreibrechten liegt. Versuchen mehrere Formulare/ Klassen beim Beenden der App was in die INI zu schreiben?
nein, das macht nur das Hauptformular. Ich habe einen Breakpoint in meiner
zentralen Unit für das Screiben in die INI-Datei gesetzt und den Programmablauf
(als Admin) verfolgt. Es gibt keinen versteckten Zugriff auf die INI.
Kompatibilität ist ein Euphemismus für n i c h t einhunderprozentige Austauschbarkeit
http://b-und-l-service.de/
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:15 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