Pobranie nazwy użytkownika Copyfile

0
#include <windows.h>
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    char  name[ 100 ];
    DWORD dwname = sizeof( name );
    GetUserName( name, & dwname );
    cout << name << endl;                   
    cout<< "Witaj "<<name;
    
    CopyFile("c:\\tp7\\1.txt", "C:\\Documents and Settings\\name.\\Menu Start\\Programy\\Autostart\\1.txt", true);
    getchar();
    cin.ignore();
    return 0;
}

Napisałem taki programik.

 CopyFile("c:\\tp7\\1.txt", "C:\\Documents and Settings\\______NAME______\\Menu Start\\Programy\\Autostart\\1.txt", true);

w tej linijce chciałbym aby pobrana nazwa użytkownika została wpisana do ścieżki kopiowania pliku.
Nie mam pojęcia jak to zrobić kombinowałem z $%' i nic.
CopyFile("c:\tp7\1.txt", "C:\Documents and Settings\"<<name<<"\Menu Start\Programy\Autostart\1.txt", true);
Tak również nie działa bo to nie poprawna składnia, nie mam pojęcia już

0
Malootki napisał(a)

http://lmgtfy.com/?q=current+user+c%2B%2B

Normalnie bardzo mi pomogłeś zawarłem już klucz który pobiera nazwę użytkownika nie umiem tylko odnieść się do tej pobranej nazwy w ścieżce pliku,.....

2

To jest złe podejście. Windows wcale nie musi być na C:, katalog Documents and Settings w nowszych systemach nazywa się Users, a "Menu Start\Programy\Autostart" u mnie nazywa się "Start Menu\Programs\Startup".

#include <stdio.h>
#include <windows.h>
#include <shlobj.h>

int main()
{
	char startupFolder[MAX_PATH];
	char startupCommonFolder[MAX_PATH];

	SHGetFolderPath(0,CSIDL_STARTUP, NULL, 0, startupFolder);
	SHGetFolderPath(0,CSIDL_COMMON_STARTUP, NULL, 0, startupCommonFolder);

	printf("%s\n", startupFolder);
	printf("%s\n", startupCommonFolder);
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1