|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Переменные среды |
|
C/C++ - [решено] Переменные среды
|
![]() Старожил Сообщения: 284 |
|
|
Отправлено: 16:03, 15-06-2012 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать O L E G, C++ среды не понимает. Т.к. он за них не отвечает.
Кто-то должен разименовать переменную. Т.е. надо кого-то/что-то спросить, кто переведет %windir% в строку. Значит надо использовать какую-либо библиотеку, которая поможет в этом деле. И ее, библиотеку, естественно надо правильно об этом попросить. GetSystemWindowsDirectory function File System Redirector Shell.NameSpace method GetEnvironmentVariable function |
------- Отправлено: 16:52, 15-06-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:19, 15-06-2012 | #3 |
![]() Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Спасибо Народ за помощь, разобрался
Кому надо смотрим: Пример Сниманаю аттрибуты с файла 45.txt в папке %Temp% Работоспособность 100% #include <windows.h> #include <tchar.h> #include <stdio.h> TCHAR* envVarStrings[] = { TEXT("%OS%"), // ващи пути которые будут указанны в работе TEXT("%PATH%"), TEXT("%HOMEPATH%"), TEXT("%TEMP%"), TEXT("%SystemDrive%") }; #define ENV_VAR_STRING_COUNT (sizeof(envVarStrings)/sizeof(TCHAR*)) #define INFO_BUFFER_SIZE 32767 void printError( TCHAR* msg ); void main( ) { DWORD i; TCHAR infoBuf[INFO_BUFFER_SIZE]; DWORD bufCharCount = INFO_BUFFER_SIZE; system ("attrib -r -s -h %TEMP%\\45.txt"); // снимаю атрибуты с файла } void printError( TCHAR* msg ) { DWORD eNum; TCHAR sysMsg[256]; TCHAR* p; eNum = GetLastError( ); FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, eNum, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), sysMsg, 256, NULL ); // Trim the end of the line and terminate it with a null p = sysMsg; while( ( *p > 31 ) || ( *p == 9 ) ) ++p; do { *p-- = 0; } while( ( p >= sysMsg ) && ( ( *p == '.' ) || ( *p < 33 ) ) ); // Display the message _tprintf( TEXT("\n\t%s failed with error %d (%s)"), msg, eNum, sysMsg ); } |
------- Последний раз редактировалось O L E G, 18-06-2012 в 12:18. Отправлено: 12:13, 18-06-2012 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 12:41, 18-06-2012 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
(статья) Переменные среды | Vadikan | Автоматическая установка Windows 2000/XP/2003 | 42 | 04-04-2015 15:57 | |
JavaScript: как узнать переменные среды? | BacuJIuu KypraHoB | Вебмастеру | 1 | 20-11-2011 23:52 | |
Переменные среды - скрыть путь 'домашней папки' пользователя | morozov_s_v | Microsoft Windows NT/2000/2003 | 11 | 18-06-2011 15:00 | |
CMD/BAT - [решено] Добавление новой переменной в переменные среды | mugensamara | Скриптовые языки администрирования Windows | 5 | 12-05-2011 15:11 | |
Переменные среды и пути ярлыков | Igor99999 | Microsoft Windows 2000/XP | 0 | 22-05-2007 16:39 |
|