Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
1

Адрес до рабочего стола

23.10.2012, 14:48. Просмотров 1648. Ответов 9
Метки нет (Все метки)

Когда прописываю адрес до файла C:\\Users\\%username%\\AppData\\Local\\File.txt то программа просто не видит его!!! Хотя тоже самое в бат файле работает отлично... Как мне в c++ прописать адрес???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2012, 14:48
Ответы с готовыми решениями:

очистка рабочего стола
Доброго времени суток всем! Нужно в С++ написать программу чтобы она очищала...

Блокировка рабочего стола!
Доброго времени суток, вчера стало интересно что такое с++ можете помочь? ...

Программы для рабочего стола
Здравствуйте уважаемы форумчане! Раньше (не профессионально) писал на делфи, но...

Смена обоев рабочего стола
Подскажите, как програмно можно сразу сменить обои? Без перезагрузок, выходов...

Фоновый рисунок рабочего стола
Всем привет!! Подскажите, пожалуйста, можно ли в с++ сделать картинку фоновым...

9
nightelf18
7 / 7 / 3
Регистрация: 06.10.2012
Сообщений: 19
23.10.2012, 15:04 2
Может, проблема с правами доступа?
1
Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
23.10.2012, 15:11  [ТС] 3
Цитата Сообщение от nightelf18 Посмотреть сообщение
Может, проблема с правами доступа?
А как эти проблемы исправить?
0
OhMyGodSoLong
~ Эврика! ~
1246 / 995 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
23.10.2012, 15:22 4
Запускать программу от имени того пользователя, который имеет право лезть в ту папку и открывать там файлы?..
0
nightelf18
7 / 7 / 3
Регистрация: 06.10.2012
Сообщений: 19
23.10.2012, 15:29 5
C++
1
2
3
4
void main(){
    fstream file("C:\\Documents and Settings\\Admin\\Рабочий стол\\1.txt",ios::out);
    file.close();
}
Создает на рабочем столе файл. Доступ есть (WinXP).
0
Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
23.10.2012, 21:11  [ТС] 6
Цитата Сообщение от nightelf18 Посмотреть сообщение
C++
1
2
3
4
void main(){
    fstream file("C:\\Documents and Settings\\Admin\\Рабочий стол\\1.txt",ios::out);
    file.close();
}
Создает на рабочем столе файл. Доступ есть (WinXP).
Мне нужно как то в c++ прописать имя пользователя, почему то %username% не срабатывает(
0
LVV
119 / 106 / 39
Регистрация: 15.02.2010
Сообщений: 453
23.10.2012, 22:17 7
Какие проблемы?
Откройте в Windows нужную папку. В окне увидите её адрес (путь) и прописываете его в свой код (не забудьте удвоить все слэши).
1
HomeR_J_SimpsoN
59 / 59 / 8
Регистрация: 15.10.2010
Сообщений: 356
23.10.2012, 22:37 8
Цитата Сообщение от Egor138 Посмотреть сообщение
почему то %username% не срабатывает(
%username% -- это просто переменная ОС. А адрес в строке воспринимается буквально, посимвольно, то есть проверки на вхождение в адрес некой переменной ОС не происходит. Если Вам нужно использовать конкретную переменную попробуйте получить ее командой из консоли. Что то вроде system('command');. Где command -- команда получения имени пользователя.
Но при этом придется перехватить выходной поток команды system(). Придется помучиться. А может и нет =)
Проще прописать %username% в батнике при инсталляции приложения и юзать его.
Удачи.
1
Nameless One
Эксперт С++
5787 / 3436 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
24.10.2012, 06:48 9
Egor138, %username% - это переменная окружения, которая автоматически интерполируется (расширяется) в строках командным процессором.

С точки зрения языка C++ "%username%" - это обычная строка, которая не имеет особой интерпретации. Для того, чтобы получить значение переменной окружения, в C/C++ используется функция getenv из stdlib.h (C) или cstdlib (С++):

C
1
2
3
4
5
6
7
8
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    puts(getenv("username"));
    exit(0);
}
Так что тебе нужно получить строку-значение соответствующей переменной окружения, а потом уже сконструировать строку пути. Но следует отметить, что значение переменной окружения не всегда может быть доступно, и в этом случае getenv возвращает NULL.

Не по теме:

Цитата Сообщение от HomeR_J_SimpsoN Посмотреть сообщение
Если Вам нужно использовать конкретную переменную попробуйте получить ее командой из консоли. Что то вроде system('command');. Где command -- команда получения имени пользователя.
Но при этом придется перехватить выходной поток команды system(). Придется помучиться. А может и нет =)
Проще прописать %username% в батнике при инсталляции приложения и юзать его.
А вот и костылями запахло :)



PS. Windows понимает прямые слэши в путях.
0
LVV
119 / 106 / 39
Регистрация: 15.02.2010
Сообщений: 453
24.10.2012, 10:19 10
//выводит имя (путь) текущей папки
C++
1
2
3
4
5
#include <iostream>
int main()
{
system ("CD");
}
0
24.10.2012, 10:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2012, 10:19

Сделать скриншот рабочего стола
Нужно сделать скриншот рабочево стола, што для етого нужно

Смена фона рабочего стола
Можно ли программно поменять изображение робочего стола? Т.е. в папке...

Как считывать видео с рабочего стола?
Задача такова: Записать видео с экрана и передать по сети. Как это можно...


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

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

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