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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
#1

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

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

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

Блокировка рабочего стола! - C++
Доброго времени суток, вчера стало интересно что такое с++ можете помочь? цель такая:HWND des=GetDesktopWindow(); ...

очистка рабочего стола - C++
Доброго времени суток всем! Нужно в С++ написать программу чтобы она очищала рабочий стол кроме значков Мой компьютер Мои документы. А...

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

Смена обоев рабочего стола - C++
Подскажите, как програмно можно сразу сменить обои? Без перезагрузок, выходов их сеанса и т.п. Любой способ - через WinAPI, реестр. Облазил...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nightelf18
7 / 7 / 0
Регистрация: 06.10.2012
Сообщений: 19
23.10.2012, 15:04 #2
Может, проблема с правами доступа?
Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
23.10.2012, 15:11  [ТС] #3
Цитата Сообщение от nightelf18 Посмотреть сообщение
Может, проблема с правами доступа?
А как эти проблемы исправить?
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
23.10.2012, 15:22 #4
Запускать программу от имени того пользователя, который имеет право лезть в ту папку и открывать там файлы?..
nightelf18
7 / 7 / 0
Регистрация: 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).
Egor138
30 / 11 / 2
Регистрация: 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% не срабатывает(
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 249
23.10.2012, 22:17 #7
Какие проблемы?
Откройте в Windows нужную папку. В окне увидите её адрес (путь) и прописываете его в свой код (не забудьте удвоить все слэши).
HomeR_J_SimpsoN
59 / 59 / 2
Регистрация: 15.10.2010
Сообщений: 356
23.10.2012, 22:37 #8
Цитата Сообщение от Egor138 Посмотреть сообщение
почему то %username% не срабатывает(
%username% -- это просто переменная ОС. А адрес в строке воспринимается буквально, посимвольно, то есть проверки на вхождение в адрес некой переменной ОС не происходит. Если Вам нужно использовать конкретную переменную попробуйте получить ее командой из консоли. Что то вроде system('command');. Где command -- команда получения имени пользователя.
Но при этом придется перехватить выходной поток команды system(). Придется помучиться. А может и нет =)
Проще прописать %username% в батнике при инсталляции приложения и юзать его.
Удачи.
Nameless One
Эксперт С++
5771 / 3420 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
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 понимает прямые слэши в путях.
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 249
24.10.2012, 10:19 #10
//выводит имя (путь) текущей папки
C++
1
2
3
4
5
#include <iostream>
int main()
{
system ("CD");
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2012, 10:19
Привет! Вот еще темы с ответами:

Установка фонового рисунка рабочего стола - C++
Нашел по этой теме в инете такой код: #include &quot;stdafx.h&quot; #include &lt;Windows.h&gt; void main() { ...

Как считывать видео с рабочего стола? - C++
Задача такова: Записать видео с экрана и передать по сети. Как это можно сделать с помощью C++? Может кто знает готовые решения...

Как читать иконки с Рабочего стола?? - C++
Помогите

Заменить рабочий стол картинкой рабочего стола - C++
Не знаю даже, туда ли я пишу, но все же. Реально ли сделать программу, которая при запуске будет сворачивать все окна, делать скриншот...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.10.2012, 10:19
Ответ Создать тему
Опции темы

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