Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi fehler !? Oder wieder eine Virtualisierung von windows 7 (https://www.delphipraxis.net/154268-fehler-oder-wieder-eine-virtualisierung-von-windows-7-a.html)

dor557 3. Sep 2010 14:59

fehler !? Oder wieder eine Virtualisierung von windows 7
 
Hallo zusammen.

Es ist schon irgendwo fristrierend.

Ich habe nun wieder ein problem was sie bei einem Windows 7 bemerkbar macht.

Folgendes ich habe folgende Struktur :

C:\Program Files\CompanyName\ProgName\bin\MyProg.exe
C:\Program Files\CompanyName\ProgName\MyProg.ini

So nun möchte ich mit folgendem Code die Ini Öffnen :

Delphi-Quellcode:
    Ini:= TIniFile.Create(copy(Paramstr(0),1,length(Paramstr(0))-23)+'myprog.ini');
          ShowMessage(Ini.FileName);
ich bekomme auch das Korrekte verzeichnis angezeigt. Sehe in der Message auch die Datei C:\Program Files\CompanyName\ProgName\MyProg.ini.

Bearbeite ich die Ini von Hand werden Daten nicht geändert. bzw offenbar aus einer Aderen Datei geladen. leider...

Nun ist die Datei evtl nicht in dem Verzeichnis sondern wird von Windows 7 virtuell wo anders gesopeichert ?

Ich weiss das man diese sachen in einem User\AppData verzeichnis speichern sollte. das werde ich auch noch machen aber erstmal muss ich die Probleme die sich in meiner Momentanen App zeigen verstehen damit ich das machen kann.

gruss Sascha

Die Muhkuh 3. Sep 2010 15:01

AW: fehler !? Oder wieder eine Virtualisierung von windows 7
 
Ich würde als erstes die Datei in AppData reinpacken, wo sie auch hingehört, dann dürfte sich Dein Problem schon erledigt haben.

DeddyH 3. Sep 2010 15:05

AW: fehler !? Oder wieder eine Virtualisierung von windows 7
 
Da schlägt die Virtualisierung wieder zu. Falls Du die Ini nur lesen möchtest, versuch es mal statt mit TIniFile mit TMemIniFile(Angabe ohne Gewähr).
Übrigens:
Zitat:

Delphi-Quellcode:
Ini:= TIniFile.Create(copy(Paramstr(0),1,length(Paramstr(0))-23)+'myprog.ini');

Das ist aber ganz schön fehleranfällig, findest Du nicht? Ich würde es so versuchen:
Delphi-Quellcode:
Ini:= TIniFile.Create(ExtractFilePath(ExtractFileDir(ParamStr(0)))+'myprog.ini');

blackfin 3. Sep 2010 15:10

AW: fehler !? Oder wieder eine Virtualisierung von windows 7
 
Such mal nach deiner myprog.ini

Du wirst sie dann wahrscheinlich in zwei verzeichnissen finden:
1) In C:\Program Files\CompanyName\ProgName\MyProg.ini
2) In C:\Users\<username>\AppData\Local\VirtualStore\Pro gram Files\CompanyName\ProgName\MyProg.ini

Wenn du nun Datei 1) mit der Hand veränderst, aber bereits eine Datei im VirtualStore (2) ist, lädt dein Programm die Daten von dort.

Die Muhkuh 3. Sep 2010 15:11

AW: fehler !? Oder wieder eine Virtualisierung von windows 7
 
Weswegen man das ganze gleich von Anfang an in AppData packt und sich um diese Sache keinen Kopf mehr machen muss. ;)

blackfin 3. Sep 2010 15:12

AW: fehler !? Oder wieder eine Virtualisierung von windows 7
 
Was auch sicher die letzten Jahre jeder gemacht hat :angel:

Die Muhkuh 3. Sep 2010 15:13

AW: fehler !? Oder wieder eine Virtualisierung von windows 7
 
Nö, hab ich auch nicht, aber es ist nicht zu spät, es jetzt auszubessern und richtig zu machen, anstatt nun ewig versuchen, die richtige Datei geladen zu bekommen.

blackfin 3. Sep 2010 15:17

AW: fehler !? Oder wieder eine Virtualisierung von windows 7
 
Schon richtig, das Problem hast du aber bei alten Software-Gurken, wenn du es updaten willst..wenn nämlich ein anderes Programm als das eigentliche (Installer / Updater, der wohlmöglich noch mit Admin-Rechten läuft) die richtige Datei öffnen will, fängt der Spass erst richtig an :D

himitsu 3. Sep 2010 15:23

AW: fehler !? Oder wieder eine Virtualisierung von windows 7
 
Erstmal hast du im Programme-Verzeichnis nunmal keine Schreibrechte mehr (das hatte man schon zu XP-Zeiten nicht, wenn man mall mit Nicht-Adminrechten unterwegs war)
Wie schon gesagt, nimm eines der "vorgeschlagenen" Verzeichnisse.


Und zweitens rate ich dir besser von dem Copy ab.
Was passiert wenn mal deine Exe anders heißt und du immernoch mit den selben Indize arbeitest?
Delphi-Quellcode:
ExtractFilePath(ExtractFileDir(Application.ExeName)) + 'Dat.ei'
oder
Delphi-Quellcode:
ExtractFileDir(ExtractFileDir(Application.ExeName)) + '\Dat.ei'

DeddyH 3. Sep 2010 21:55

AW: fehler !? Oder wieder eine Virtualisierung von windows 7
 
Schon wieder nicht gelesen (#3) *gnarf*


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.
Seite 1 von 2  1 2      

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