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

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

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

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

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

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

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( ...

Возвращение результата функции bool и использование его в функции main() - C++
У меня есть функция bool, которая имеет вид: bool Pisos(int row, int place) { if (...) return true; else return false;...

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

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

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

Правильный способ - получить данный путь через функцию SHGetFolderPath
(CSIDL = CSIDL_MYDOCUMENTS), потом прибавить к нему имя файла и
вызвать DeleteFile.
0
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
25.12.2013, 22:56  [ТС] #3
Например?
0
Убежденный
Ушел с форума
Эксперт С++
15689 / 7199 / 1138
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
25.12.2013, 23:13 #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
3
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
26.12.2013, 16:37  [ТС] #5
А чтобы дальше пройти от AppData нужно ввести продолжение?
Например:
C:\Users\<имя_пользователя>\AppData\New\example.txt

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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