Probleme Windows Vista und Windows 7

Anfängerfragen zum Programmieren mit PureBasic.
amiga123
Beiträge: 88
Registriert: 17.02.2009 18:05

Probleme Windows Vista und Windows 7

Beitrag von amiga123 »

Hallo

Also ich habe folgendes Problem. Ich habe hier ein Programm geschrieben das unter Windows 2000 und XP fehlerfrei läuft.(Es liest und ändert eine txt.Datei)
Jetzt habe ich das Programm auf einem Windows Vista und Window7 Rechner installiert und siehe da es läuft zwar, ändert aber die Datei nicht mehr.
Habe nun in den Eigenschaften alles Freigegeben damit das Programm vollen Schreibzugriff hat, bringt aber nicht es kann immer noch keine Datei neu schreiben.
Im XP Kompatibilitäs Modus läuft alles wie gewünscht, ebenso wenn ich das Programm in einem seperaten Ordner installiere. (z.B. C:test/)
Weiß jemand woran das liegen könnte.

Gruß Amiga
Pure Basic 4.60 Vollversion
http://www.Sundisp.de
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: Probleme Windows Vista und Window 7

Beitrag von TomS »

amiga123 hat geschrieben:alles wie gewünscht, ebenso wenn ich das Programm in einem seperaten Ordner installiere. (z.B. C:test/)
Weiß jemand woran das liegen könnte.
Am Pfad?

C:\Programme\Irgendwas\deinProgramm.exe
versucht C:\Programme\Irgendwas\deineDatei.txt zu schreiben?
Geht nicht ohne Admin-Rechte afaik.

Config-Dateien und so Zeug besser in %APPDATA%\ProgrammName\Datei.ext speichern.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Probleme Windows Vista und Window 7

Beitrag von ts-soft »

Das ändern der Sicherheitseinstellungen sollte man eigentlich nicht machen, besser das Programm umschreiben.

Bei den Änderungen haste wohl nen Fehler gemacht.

Ordner Kontextmenü Eigenschaften auswählen, den Reiter Sicherheit auswählen,
bearbeiten auswählen, Benutzer (PC-Name\Benutzer) auswählen und bei Zulassen Vollzugriff auswählen.

Das ganze bringt Dir aber garnichts, wenn Du Deine Programme weitergeben willst. Also ändere besser
Dein Programm.

Gruß
Thomas
amiga123
Beiträge: 88
Registriert: 17.02.2009 18:05

Re: Probleme Windows Vista und Window 7

Beitrag von amiga123 »

TomS hat geschrieben:
amiga123 hat geschrieben:alles wie gewünscht, ebenso wenn ich das Programm in einem seperaten Ordner installiere. (z.B. C:test/)
Weiß jemand woran das liegen könnte.
Am Pfad?

C:\Programme\Irgendwas\deinProgramm.exe
versucht C:\Programme\Irgendwas\deineDatei.txt zu schreiben?
Geht nicht ohne Admin-Rechte afaik.

Config-Dateien und so Zeug besser in %APPDATA%\ProgrammName\Datei.ext speichern.
Hi
Was ist %APPDATA%\ProgrammName\Datei.ext ?? Tut mir leid das ich das nicht weiß. :oops:

gruß Amiga

Ups. Habe gerade was gefunden zu APPDATA.

Code: Alles auswählen

SetCurrentDirectory("%APPDATA%")
appdata.s=GetCurrentDirectory()

Debug appdata

ExamineDirectory(0, appdata, "")
; Verzeichnis auslesen
nur wenn ich das Aufrufe kommt eben nur der Pfad raus wie bei GetPathPart(DPfad$)
oder läuft das nur unter Vista/7

???
Pure Basic 4.60 Vollversion
http://www.Sundisp.de
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: Probleme Windows Vista und Window 7

Beitrag von TomS »

%APPDATA% ist eine Umgebungsvariable.
Unter XP ist das z.B. C:\Dokumente und Einstellungen\Benutzername\Anwendungsdaten\
Unter Vista glaube ich (nicht fressen, wenn's falsch ist) C:\Users\Benutzername\Anwendungsdaten\

Dort werden eben Dateien von den Programmen abgelegt. Z.B. das Benutzer-Profil von Firefox, oder die E-Mails von Thunderbird, oder die Spielstände von einem Spiel.

In deinem Code steht wahrscheinlich folgendes:

Code: Alles auswählen

OpenFile(FileFandle,"datei.txt")
Dort schreibt du einfach:

Code: Alles auswählen

OpenFile(FileFandle,"%APPDATA%\name_von_deinem_programm\datei.txt")
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Probleme Windows Vista und Window 7

Beitrag von ts-soft »

TomS hat geschrieben:

Code: Alles auswählen

OpenFile(FileFandle,"%APPDATA%\name_von_deinem_programm\datei.txt")
Das funktioniert? Kann ich mir nicht vorstellen, das der String expandiert wird, habs aber nicht getestet.

@Amiga
Du setzt den Pfad folgendermassen zusammen:

Code: Alles auswählen

Define.s MyOrganisation = "AmigaSoft"
Define.s ProgramName = "Mein tolles Programm"
Define.s FileToSave = "wichtig.txt"
Define.s Path
Path = GetEnvironmentVariable("APPDATA") + "\"
Debug Path
Path + MyOrganisation + "\"
Debug Path
Path + ProgramName + "\"
Debug Path
Path + FileToSave
Debug Path
Die ersten 3 Variablen sind natürlich anzupassen. An diesem Ort kannste dann problemlos Dateien erstellen, bearbeiten usw., auf allen Windows-Systemen, Userrechte genügen.

Das Deine Ursprüngliche Version unter W2K und XP funktionierte, lag nur an den Rechten, bei eingeschränkten Usern versagt es genauso wie unter Vista und 7. "Normale" Programme sollten also
immer in "APPDATA" oder "MYDOCUMENTS" speichern, alles andere ist schlichtweg falsch.

Gruß
Thomas
amiga123
Beiträge: 88
Registriert: 17.02.2009 18:05

Re: Probleme Windows Vista und Window 7

Beitrag von amiga123 »

TomS hat geschrieben:%APPDATA% ist eine Umgebungsvariable.
Unter XP ist das z.B. C:\Dokumente und Einstellungen\Benutzername\Anwendungsdaten\
Unter Vista glaube ich (nicht fressen, wenn's falsch ist) C:\Users\Benutzername\Anwendungsdaten\

Dort werden eben Dateien von den Programmen abgelegt. Z.B. das Benutzer-Profil von Firefox, oder die E-Mails von Thunderbird, oder die Spielstände von einem Spiel.

In deinem Code steht wahrscheinlich folgendes:

Code: Alles auswählen

OpenFile(FileFandle,"datei.txt")
Dort schreibt du einfach:

Code: Alles auswählen

OpenFile(FileFandle,"%APPDATA%\name_von_deinem_programm\datei.txt")
Also das habe ich jetzt gerade Probiert.
Es kommt aber nicht der Ordner raus sondern wenn ich mir den Pfad anzeigen lassen kommt das raus.

Code: Alles auswählen

OpenFile(FileFandle,"%APPDATA%\Sundisp\Sundisp.cfg")
Gruß Amiga

der Ordner C:\Dokumente und Einstellungen\Herbert\Anwendungsdaten\Sundisp bleibt leer
Pure Basic 4.60 Vollversion
http://www.Sundisp.de
amiga123
Beiträge: 88
Registriert: 17.02.2009 18:05

Re: Probleme Windows Vista und Window 7

Beitrag von amiga123 »

ts-soft hat geschrieben:
TomS hat geschrieben:

Code: Alles auswählen

OpenFile(FileFandle,"%APPDATA%\name_von_deinem_programm\datei.txt")
Das funktioniert? Kann ich mir nicht vorstellen, das der String expandiert wird, habs aber nicht getestet.

@Amiga
Du setzt den Pfad folgendermassen zusammen:

Code: Alles auswählen

Define.s MyOrganisation = "AmigaSoft"
Define.s ProgramName = "Mein tolles Programm"
Define.s FileToSave = "wichtig.txt"
Define.s Path
Path = GetEnvironmentVariable("APPDATA") + "\"
Debug Path
Path + MyOrganisation + "\"
Debug Path
Path + ProgramName + "\"
Debug Path
Path + FileToSave
Debug Path
Die ersten 3 Variablen sind natürlich anzupassen. An diesem Ort kannste dann problemlos Dateien erstellen, bearbeiten usw., auf allen Windows-Systemen, Userrechte genügen.

Das Deine Ursprüngliche Version unter W2K und XP funktionierte, lag nur an den Rechten, bei eingeschränkten Usern versagt es genauso wie unter Vista und 7. "Normale" Programme sollten also
immer in "APPDATA" oder "MYDOCUMENTS" speichern, alles andere ist schlichtweg falsch.

Gruß
Thomas

Danke Thomas
Das ist genau das was ich suche. Dann werde ich mal mein Programm umschreiben damit es auf Vista und 7 läuft.

Gruß Amiga
Pure Basic 4.60 Vollversion
http://www.Sundisp.de
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: Probleme Windows Vista und Window 7

Beitrag von TomS »

ts-soft hat geschrieben:Das funktioniert? Kann ich mir nicht vorstellen, das der String expandiert wird, habs aber nicht getestet.
Hast Recht /:->
Dachte, dass es unter Windows automatisch geht, wie im Explorer auch. Hab mich getäuscht...
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: Probleme Windows Vista und Window 7

Beitrag von Andesdaf »

> Unter Vista glaube ich (nicht fressen, wenn's falsch ist) C:\Users\Benutzername\Anwendungsdaten\
C:\Users\Benutzername\AppData\ :wink:
Win11 x64 | PB 6.20
Antworten