tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Matthias Reitinger
ERLEDIGT
JA
ANTWORTEN
12
ZUGRIFFE
447
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Hallo ich wollte mla Frgaen wie ich mit C++ den Pfad Von Dokumente herausfinden kann.
    Ind der shlobj.h ist leider nur der public ordner von documente definiert
    Danke
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi

    Du meinst, weil jeder Benutzer seinen eigenen hat?
    Probier %userprofile% (bzw. wegen Escapezeichen "%%userprofile%%")

    Gruß
     

  3. #3
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Danke
    Aber wo kann ich das einsetzten?
    So:
    Code cpp:
    1
    
    string test = "%%userprofile%%\\Test";
    Danke
    Geändert von MSVCplusplus (06.08.11 um 23:54 Uhr)
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  4. #4
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Auf jeden Fall einmal \\ statt \ wegen Escapezeichen.
    Sieht man ja sogar an dem Highlighting hier im Forum.
    \t wäre ein Tabulator, so wie \n ein Zeilenwechsel.
    Aber: Bin mir nicht sicher, ob die Dateifunktionen da direkt mitmachen.
    Wenn nicht:
    Code cpp:
    1
    
    getenv("USERPROFILE");
    liefert einen String mit dem Pfad.

    Gruß
     

  5. #5
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Danke
    das \ war ein schreibfehler sry
    und noch ne Frage den Program Files ordner wie ermittle ich den?
    Danke
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  6. #6
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Habe gerade mal geteste.
    Bei Userprofile komm ich nur auf den User nicht aber auf Dokumnete!
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  7. #7
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hats funktioniert? Schön...war mir nicht sicher, ob das bei neuren Windows noch gleich geblieben ist (bin noch mit XP unterwegs).

    Zum Programme bzw. ProgramFiles: Statt USERPROFILE nimmst du ProgramFiles

    Die komplette Liste davon gibts in der CMD, wenn man "set" eintippt.

    Gruß

    edit: Ja, aber von dort weg heißts ja bei jedem User wieder gleich, oder?
     

  8. #8
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Es gibt in XP Dokumente und in Vista heist es Documents oder so
    Gruß
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  9. #9
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Bei mir heißts cmd-mäßig sogar "Dateien von Benutzername" und wird nur im Explorer je nach angemeldetem Benutzer als "Dokumente von Benutzername" oder "Eigene Dateien" angezeigt.

    Hmm...eine EnvVar direkt auf die Eigenen Dateien scheints nicht zu geben.

    Vielleicht probierst du einmal das?
    FOR /F "tokens=3 usebackq delims= " %%I IN (`REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal`) DO (SET dervariablenname=%%I)
    (Alles in einer Zeile).
    Würd ich aber irgendwie nicht machen...

    Frag am Besten gleich den Registrypfad ab, ohne über die CMD zu gehen.

    Gruß
    Geändert von sheel (07.08.11 um 00:27 Uhr)
     

  10. #10
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Danke
    Also diese For /F..... einfach in system("..."); reinpacken?
    In welchem Pfad ist den der Pfad von Dokumente in der Registry?
    MFG

    EDIT Habe was gefunden: HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\Shell Folders
    allredings ist auch wieder nichts mit Dokumenten -.-

    EDIT2:
    der Pfad: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
    Ist aleider auch niht zu gebrauen nichts mit Dokumenten -.-
    Geändert von MSVCplusplus (07.08.11 um 09:09 Uhr)
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  11. #11
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Zitat Zitat von MSVCplusplus Beitrag anzeigen
    EDIT Habe was gefunden:
    Den Pfad hättest du aber auch nicht mehr suchen müssen, der ist doch Teil der For-Schleife oben...

    Ich meinte aber, besser den Wert mit C-Mitteln abfragen statt dieses komische For.

    In besagtem Reg-Verzeichnis gibt es einen REG_EXPAND_SZ namens Personal, der direkt auf die Eigenen Dateien verweist.

    Gruß
     

  12. #12
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.802
    Blog-Einträge
    5
    Kein Grund irgendetwas manuell aus der Registry rauszusuchen. Verwende besser SHGetFolderPath:

    Code c:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    #include <Windows.h>
    #include <ShlObj.h>
     
    #include <stdio.h>
     
    int main() {
      TCHAR path[MAX_PATH];
      SHGetFolderPath(0, CSIDL_MYDOCUMENTS, 0, SHGFP_TYPE_CURRENT, path);
      printf("Documents: %s\n", path);
      SHGetFolderPath(0, CSIDL_PROGRAM_FILES, 0, SHGFP_TYPE_CURRENT, path);
      printf("Program Files: %s\n", path);
    }

    Grüße,
    Matthias
    sheel bedankt sich. 
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  13. #13
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Danke euch allen hat jetzt endlich funktioniert mit SHGetFolderPath
    MFG
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

Ähnliche Themen

  1. Aktuellen Pfad herausfinden
    Von DirkHo im Forum Java
    Antworten: 2
    Letzter Beitrag: 12.11.09, 13:43
  2. Pfad von J2SDK herausfinden
    Von Hawkings im Forum Linux & Unix
    Antworten: 4
    Letzter Beitrag: 30.04.08, 16:09
  3. Pfad herausfinden
    Von JaD im Forum C/C++
    Antworten: 9
    Letzter Beitrag: 11.02.08, 10:03
  4. Pfad herausfinden
    Von fruchtzerg im Forum PHP
    Antworten: 1
    Letzter Beitrag: 19.08.05, 23:20
  5. Pfad-Herausfinden und Image-Komplimierung
    Von General Hunter im Forum Visual Basic 6.0
    Antworten: 16
    Letzter Beitrag: 09.03.05, 17:38

Stichworte