Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
#1

Использование функции GetUserName() - C++

25.12.2013, 22:35. Просмотров 828. Ответов 15
Метки нет (Все метки)

Нужен пример программы, которая удаляет файл за адресом C:\Users\<имя_пользователя>\AppData\example.txt
Если можно наведите пример.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2013, 22:35     Использование функции GetUserName()
Посмотрите здесь:

GetUserName: вывод - C++
Пишу такое дело: int main() { DWORD bufCharCount; TCHAR infoBuf; GetUserName(infoBuf, &amp;bufCharCount); std::cout...

GetUserName пропадает значение - C++
Добрый вечер получаю имя залагиненого пользователя с помощью функции GetUserName из нее передаю значение в char. Значение пропадает когда я...

Компилятор не находит функцию GetUserName - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;locale&gt; using namespace std; BOOL GetUserName( ...

использование массива из функции в другой функции - C++
как использовать полученный массив в другой функции. к примеру в функции int Mass(char *fname) происходит конвертация одномерного массива...

Как убрать привилегии системы? Почему GetUserName всегда возвращает "SYSTEM"? - C++
Здорово, народ! У меня такая ситуация - есть программа, работающая как служба, так вот эта прога при получении имени юзера...

Использование функции gets - C++
char *str1; gets(str1); Комментарий препода: Собственно вопрос: Справедлив ли комментарий препода и как сделать так, чтоб было...

Использование функции Gets() - C++
Помогите переделать данный код, чтобы вводить str не через функцию cin, а через функцию gets() #include &lt;iostream&gt; #include &lt;string&gt;...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
Эксперт С++
15296 / 6928 / 1096
Регистрация: 02.05.2013
Сообщений: 11,336
Завершенные тесты: 1
25.12.2013, 22:40     Использование функции GetUserName() #2
А при чем здесь GetUserName ?
На системах до Windows Vista нет никаких "C:\Users", да и системный
диск может быть под буквой "D", например, и что тогда ?

Правильный способ - получить данный путь через функцию SHGetFolderPath
(CSIDL = CSIDL_MYDOCUMENTS), потом прибавить к нему имя файла и
вызвать DeleteFile.
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
25.12.2013, 22:56  [ТС]     Использование функции GetUserName() #3
Например?
Убежденный
Системный программист
Эксперт С++
15296 / 6928 / 1096
Регистрация: 02.05.2013
Сообщений: 11,336
Завершенные тесты: 1
25.12.2013, 23:13     Использование функции GetUserName() #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Удаляет файл example.txt из папки "Мои Документы":
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <Windows.h>
#include <ShlObj.h>
 
 
 
int main()
{
    wchar_t *pBuffer = new wchar_t[1000];
    SHGetFolderPathW(NULL, CSIDL_MYDOCUMENTS, NULL, SHGFP_TYPE_CURRENT, pBuffer);
    lstrcatW(pBuffer, L"\\example.txt");
    DeleteFileW(pBuffer);
    delete[] pBuffer;
}
Для AppData нужно использовать другой CSIDL, какой именно - найдете в
документации к функции SHGetFolderPath:
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
26.12.2013, 16:37  [ТС]     Использование функции GetUserName() #5
А чтобы дальше пройти от AppData нужно ввести продолжение?
Например:
C:\Users\<имя_пользователя>\AppData\New\example.txt

нужно ввести:
lstrcatW(pBuffer, L"\\New\\example.txt");
Убежденный
Системный программист
Эксперт С++
15296 / 6928 / 1096
Регистрация: 02.05.2013
Сообщений: 11,336
Завершенные тесты: 1
26.12.2013, 16:42     Использование функции GetUserName() #6
Да.
Кстати, вместо lstrcatW и работы с "сырым" буфером надежнее
использовать std::wstring.
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
26.12.2013, 18:22  [ТС]     Использование функции GetUserName() #7
Цитата Сообщение от Убежденный Посмотреть сообщение
Кстати, вместо lstrcatW и работы с "сырым" буфером надежнее
использовать std::wstring.
Можно пример, а то я в програмырованние под виндовс пока еще не очень
Убежденный
Системный программист
Эксперт С++
15296 / 6928 / 1096
Регистрация: 02.05.2013
Сообщений: 11,336
Завершенные тесты: 1
26.12.2013, 19:20     Использование функции GetUserName() #8
Цитата Сообщение от ALEXKIRNAS Посмотреть сообщение
Можно пример, а то я в програмырованние под виндовс пока еще не очень
Примеры без теории - ничто.
Читайте книжки по C++ и Win API, там все нужное есть.
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
26.12.2013, 19:32  [ТС]     Использование функции GetUserName() #9
Это понятно, но все же можно пример?
Убежденный
Системный программист
Эксперт С++
15296 / 6928 / 1096
Регистрация: 02.05.2013
Сообщений: 11,336
Завершенные тесты: 1
26.12.2013, 19:45     Использование функции GetUserName() #10
Цитата Сообщение от ALEXKIRNAS Посмотреть сообщение
Это понятно, но все же можно пример?
После вызова SHGetFolderPath можно присвоить строке std::wstring содержимое буфера.
А потом добавлять в нее остальные элементы пути (используя, например, оператор +).
Это лучше lstrcatW, так как нет опасности выхода за пределы буфера.
Код не привожу, он тривиален.
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
26.12.2013, 20:08  [ТС]     Использование функции GetUserName() #11
А как удалить целую папку?
Убежденный
Системный программист
Эксперт С++
15296 / 6928 / 1096
Регистрация: 02.05.2013
Сообщений: 11,336
Завершенные тесты: 1
26.12.2013, 20:11     Использование функции GetUserName() #12
SHFileOperation
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
26.12.2013, 20:41  [ТС]     Использование функции GetUserName() #13
Можно что-то конкретные?
Убежденный
Системный программист
Эксперт С++
15296 / 6928 / 1096
Регистрация: 02.05.2013
Сообщений: 11,336
Завершенные тесты: 1
27.12.2013, 12:16     Использование функции GetUserName() #14
Цитата Сообщение от ALEXKIRNAS Посмотреть сообщение
Можно что-то конкретные?
Все есть в документации (ссылка выше), ее нужно только прочесть.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2013, 13:09     Использование функции GetUserName()
Еще ссылки по теме:

Использование функции - C++
Я должен посчитать сколько букв в каждой строке с использованием функции int countAccurance(char arr, char ch). Но вывод должен быть в...

Использование функции. - C++
помогите переделать программу нужно использовать функцию #include &lt;math.h&gt; #include &lt;iostream.h&gt; #include&lt;fstream.h&gt; ...

использование функции! - C++
В матрице A(5,3) найти наибольший элемент.Решить эту задачу нужно с использованием функции!!Люди добрые помогите пожалуйста!!!

Использование функции - C++
Не могли бы помочь решить вот это задание? И подскажите где можно прочитать о функциях, передаче данных при вызове функции....

Использование функции fabs - C++
Как исправить? Вот код #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;cmath&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
27.12.2013, 13:09     Использование функции GetUserName() #15
Цитата Сообщение от Убежденный Посмотреть сообщение
new wchar_t[1000];
Надеюсь, это только в качестве примера. Иначе у меня 2 вопроса:
1. Почему 1000?
2. Зачем выделение из кучи?
Yandex
Объявления
27.12.2013, 13:09     Использование функции GetUserName()
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru