Archiv verlassen und diese Seite im Standarddesign anzeigen : [C++] Desktop/Eigene Dateien-Pfad herausfinden
Moin, gibt es eine Funktion zum Auslesen des Eigene Dateien bzw Desktop Pfades? Für den Windows Ordner gibt es ja z.B. GetWindowsDirectory() und für system32-Ordner GetSystemDirectory().
SharkByte~x
12.07.2008, 23:29
Guck mal in der MSDN nach der Funktion "GetSpecialFolders".
Mfg
]=-antr4xx-=[
12.07.2008, 23:29
http://msdn.microsoft.com/en-us/library/bb762181(VS.85).aspx
ich glaube, mit der Funktion kannst du das auch herausfinden.
Generell solltest du immer das msdn konsultieren bei solchen Fragen...
Danke für die Antworten.
Also ich habe es jetzt mit SHGetFolderPath() versucht, allerdings kommen folgende Fehler:
Erzeugen
[C++ Fehler] shobjidl.h(2193): E2238 Bezeichner 'FOLDERSETTINGS' mehrfach deklariert
[C++ Fehler] shobjidl.h(8095): E2238 Bezeichner 'DESKBANDINFO' mehrfach deklariert
[C++ Fehler] shlobj.h(1422): E2238 Bezeichner 'FVSHOWINFO' mehrfach deklariert
[C++ Fehler] shlobj.h(3457): E2238 Bezeichner 'SHELLFLAGSTATE' mehrfach deklariert
Mein Quellcode:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "shlobj.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char Pfad[256];
SHGetFolderPath(NULL,CSIDL_PERSONAL,NULL,0,Pfad);
Label1->Caption=String(Pfad);
}
//---------------------------------------------------------------------------
(Borland C++ Builder 6 Personal)
Ohne das Einbinden der shlobj.h werden die Funktionen nicht gefunden, d.h. die muss schon mal drin bleiben.
Versuchs mal mit getenv() und der Environment-Variable für den User-ordner. Von da brauchst du ja nur anzuhängen.
Danke enco :)
Könnte mir vielleicht noch jemand einen Beispielpfad auf den Desktop auf Vista geben? Wegen dem anhängen, denn bei Vista weiß ich nicht so genau wie es aussieht ;)
Außerdem fehlt noch der Eigene Dateien Ordner, ich weiß nicht wo der Standardmäßig liegt aber ich habe den z.B. selbst auf F:\ gelegt. (Falls es da eine Umgebungsvariable gibt, bitte posten, ich finde sie nicht :D ) Ansonsten siehe meinen Beitrag über encos; damit würde es wohl gehen, wenn ich die Fehler wegbekomme.
]=-antr4xx-=[
13.07.2008, 10:51
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "shlobj.h"
Ich nehme an, dass in diesen Headerdateien die Bezeichner
[C++ Fehler] shobjidl.h(2193): E2238 Bezeichner 'FOLDERSETTINGS' mehrfach deklariert
[C++ Fehler] shobjidl.h(8095): E2238 Bezeichner 'DESKBANDINFO' mehrfach deklariert
[C++ Fehler] shlobj.h(1422): E2238 Bezeichner 'FVSHOWINFO' mehrfach deklariert
[C++ Fehler] shlobj.h(3457): E2238 Bezeichner 'SHELLFLAGSTATE' mehrfach deklariert schon deklariert sind.
onkel2000
13.07.2008, 17:22
http://www.bytesandmore.de/rad/cpp/snipp/sc03023.php
@antr4xx: Ja, aber wo bzw wie behebe ich das, habe eigentlich bisher nie in dem Bereich gearbeitet.
@onkel2000: Was bringt mir die Seite? Ich finde die Lösung nicht zu meinem Problem.
Powered by vBulletin® Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.