Verzeichins AllUsers ermitteln

Verschiedenes zu Qt
Antworten
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Verzeichins AllUsers ermitteln

Beitrag von reinki0013 »

Hallo Zusammen,

ich arbeite seit kurzem mit dem QT Creator und würde nun gerne folgenden Pfad ermitteln:

Code: Alles auswählen

C:\Dokumente und Einstellungen\All Users\ 
Allerdings bekomme ich mit

Code: Alles auswählen

QString appDir = QDir::homePath() + "/Application Data/";
nur das Eigene Verzeichnis, sprich das Verzeichnis mit dem Benutzernamen...

Kann mir da jemand weiterhelfen??

Lg
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

All Users
Ist aehm sehr .... microsoft spezifisch.
In Linux gibts kein so ein Verzeichniss, da liegen daten die user sich teilen in bestimmten anderen verzeichnissen (/usr/share z.b.)

Also Qt wird dir da glaub ich ned recht weiterhelfen können. windows spezifisch gibts kniffe um an C:\Dokumente und Einstellungen ranzukommen ueber die registry und ner bestimmten ID ... google mal danach.

Ciao....
reinki0013
Beiträge: 174
Registriert: 11. November 2008 09:37
Wohnort: AUT

Beitrag von reinki0013 »

RHBaum hat geschrieben:
All Users
Ist aehm sehr .... microsoft spezifisch.
In Linux gibts kein so ein Verzeichniss, da liegen daten die user sich teilen in bestimmten anderen verzeichnissen (/usr/share z.b.)

Also Qt wird dir da glaub ich ned recht weiterhelfen können. windows spezifisch gibts kniffe um an C:\Dokumente und Einstellungen ranzukommen ueber die registry und ner bestimmten ID ... google mal danach.

Ciao....
was ich nicht ganz verstehe, braucht denn das sonst keiner?
ich meine die ganzen speziellen ordner, "Eigene Dateien", "All Users" usw.?

Wie macht ihr denn das?
Curtis Newton
Beiträge: 122
Registriert: 11. Juni 2008 18:39

Beitrag von Curtis Newton »

Code: Alles auswählen


QString getEnviroment(const char *env_name)
{
	QString path;

	char* libvar;
	size_t requiredSize;

	getenv_s( &requiredSize, NULL, 0, env_name);

	libvar = (char*) malloc(requiredSize * sizeof(char));
	if (!libvar)
	{
		printf("Failed to allocate memory!\n");
		return path;		
	}

	// Get the value of the LIB environment variable.
	getenv_s( &requiredSize, libvar, requiredSize, env_name );

	if( libvar != NULL ) path=QString(libvar);		

	free(libvar);

	return path;
}

Mit getEnviroment("ALLUSERSPROFILE") bekomme ich
'C:\Dokumente und Einstellungen\All Users'

HTH.
C.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wenn man schon was Windows-spezifisches benutzen will sollte man auch die richtigen WinAPI-Funktionen raussuchen... :roll:
SHGetFolderPathW
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Oliver Hom
Beiträge: 33
Registriert: 27. Mai 2009 12:44

Beitrag von Oliver Hom »

Ich nehme z.B.

Code: Alles auswählen

QString(getenv("APPDATA")) 
um die Daten zu ermitteln.

Gruß,
Oliver
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

was ich nicht ganz verstehe, braucht denn das sonst keiner?
Ich vermeide das wie die Pest :-)
das "Homeverzeichniss" bekommt man ja so raus.
Das verzeichniss wo die app liegt auch.
Irgendwelche Verzeichnisse, die weder zum User gehoeren, noch zur App, gabs bei mir noch ned, oder ich habs den Admin überlassen nen verzeichniss zu finden (also konfiguruierbar in der App)

Ciao ...
Antworten