Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Windows Preinstallation Environment(WinPE) и BartPE LiveCD 7

Модерирует : KLASS, IFkO

vu1tur (27-01-2012 03:24): следующая часть — http://forum.ru-board.com/topic.cgi?forum=62&topic=24098  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115

   

OpenGL32

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как динамически изменить переменную окружения TEMP?  
 
Меняю в  HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \  Control \  Session Manager \ Environment
 
Затем как сказано в http://support.microsoft.com/?kbid=104011 посылаю широковещательное сообщение всем приложениям  
 
   SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,
    (LPARAM) "Environment", SMTO_ABORTIFHUNG,
    5000, &dwReturnValue);
 
но приложения по прежнему лезут в %systemroot%\temp (((
 
Из под обычно загруженной винды этот вариант работает, из под WinPE нет.
 
Есть еще варианты?

Всего записей: 10 | Зарегистр. 27-02-2010 | Отправлено: 11:08 31-07-2010
Alexey32



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OpenGL32
А если в винде в HKLM\SYSTEM\Setup сделать CmdLine="explorer.exe", SystemSetupInProgress="1", SetupType="1" и перезагрузить? Только учти, что после загрузки SetupType обращается в ноль, и если его вручную не поставить в единицу, то винда не запустится. Чтобы всё вернуть обратно, достаточно SystemSetupInProgress="0", SetupType="0".

Всего записей: 32 | Зарегистр. 17-03-2010 | Отправлено: 13:02 31-07-2010
VV2006

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OpenGL32

Цитата:
Есть еще варианты?
set temp=B:\TEMP

Всего записей: 2123 | Зарегистр. 10-02-2006 | Отправлено: 13:45 31-07-2010
OpenGL32

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexey32
А зачем это все?
 
Я делаю сборку на базе чистой WinPE 3.0, нужно чтобы при загрузке оболочки была возможность выбрать (переназначить) каталог временных файлов.
 
VV2006
ну так это только для текущего процесса.
 
Можно прописать в реестре изначально например C:\TEMP, но хотелось бы назначать произвольный каталог.

Всего записей: 10 | Зарегистр. 27-02-2010 | Отправлено: 14:11 31-07-2010 | Исправлено: OpenGL32, 14:12 31-07-2010
Alexey32



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OpenGL32
Это для чистоты эксперимента. Эти два параметра в реестре - главное и, по сути, единственное отличие winpe от обыкновенной винды. Если не будет работать - позапускай службы.

Всего записей: 32 | Зарегистр. 17-03-2010 | Отправлено: 15:08 31-07-2010
mat86



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Интересная идея переместить temp на диск С, когда машина старая и памяти мало, антивирус не помещается. А можно ли чтобы %ramdrive% перенести на С:, ну чтобы все пути В: переназначит на С: ?

Всего записей: 438 | Зарегистр. 19-03-2009 | Отправлено: 19:37 31-07-2010
OpenGL32

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mat86
Вот и я о том же. Было бы неплохо чтобы temp по умолчанию находился в systemroot или ram-диске на случай отсутствия/повреждения жесткого диска, а при его наличии была возможность создать temp на произвольном разделе.

Всего записей: 10 | Зарегистр. 27-02-2010 | Отправлено: 20:00 31-07-2010
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OpenGL32

Цитата:
была возможность создать temp на произвольном разделе.

А кто мешает создать в контекстном меню пункт "Запустить с %temp%=С:\TEMP" ?
 

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:16 31-07-2010
VV2006

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ничего не понимаю: в любое время можно (пере)назначить переменной temp любое значение, соответствующее реально существующему пути. А виртуальный диск на хард C!
 

Всего записей: 2123 | Зарегистр. 10-02-2006 | Отправлено: 20:18 31-07-2010
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VV2006

Цитата:
в любое время можно (пере)назначить переменной temp любое значение

Имеется ввиду, что если просто поправить реестр, изменения вступят в силу после перезагрузки.
Для изменения без перезагрузки (на лету) есть специальные утилиты, например SetEnv.exe или Setx.exe от Microsoft.
 

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:41 31-07-2010
mat86



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ничего не понимаю: в любое время можно (пере)назначить переменной temp любое значение, соответствующее реально существующему пути. А виртуальный диск на хард C
Каким образом? Просто у меня пока не получается и я подумал о таком варианте переназначить в реестре пути виртуального диска В на С

Всего записей: 438 | Зарегистр. 19-03-2009 | Отправлено: 20:44 31-07-2010
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mat86

Цитата:
Каким образом?

Скачиваешь SetX, извлекаешь из пакета SetX.exe, далее выполняешь

Код:
SetX.exe Temp c:\temp


Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:58 31-07-2010
OpenGL32

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Имеется ввиду, что если просто поправить реестр, изменения вступят в силу после перезагрузки.  
Для изменения без перезагрузки (на лету) есть специальные утилиты, например SetEnv.exe или Setx.exe от Microsoft.

 
Да имеется ввиду именно это. Вот только не работают эти утилиты ((, причем в обычной винде тоже, если после изменения в cmd набрать set то увидим новые значение, а если из своей программы вызвать getenv("temp") (GetTempPath) то путь остается прежним ((
 
Похоже что без перезагрузки не обойтись, либо надо как-то вносить изменения в реестр еще до того как произойдет инициализация профиля.

Всего записей: 10 | Зарегистр. 27-02-2010 | Отправлено: 21:04 31-07-2010
mat86



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Скачиваешь SetX, извлекаешь из пакета SetX.exe, далее выполняешь  
 
Код:SetX.exe Temp c:\temp
Я попробовал, без перезагрузки не меняется, программы распаковывающиеся в temp на B:\ так и распаковываются

Всего записей: 438 | Зарегистр. 19-03-2009 | Отправлено: 21:11 31-07-2010
Polo



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скажите пожалуйста, как в конструктор BARTPE  выбрать часовой пояс (нужен московский) а то создает 0 по Гринвичу ?

Всего записей: 2030 | Зарегистр. 30-09-2001 | Отправлено: 21:19 31-07-2010
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mat86

Цитата:
Я попробовал, без перезагрузки не меняется

Проверил на своей сборке, все нормально отрабатывается.
Проверь наличие файлов LPK.DLL и USP10.DLL

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 21:31 31-07-2010
mat86



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
присутствуют, у меня сборка на BSExplorer, может это влияет?

Всего записей: 438 | Зарегистр. 19-03-2009 | Отправлено: 21:39 31-07-2010 | Исправлено: mat86, 21:41 31-07-2010
OpenGL32

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NIKZZZZ
А попробуй после изменения запустить программу которая распаковывает свои файлы в temp (например DrWeb CureIt)  
 
Что-то мне уже кажется что сменить HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment без перезагрузки вообще невозможно, так как эти переменные устанавливаются Session Manager-ом еще до загрузки Win32

Всего записей: 10 | Зарегистр. 27-02-2010 | Отправлено: 21:42 31-07-2010 | Исправлено: OpenGL32, 21:43 31-07-2010
mat86



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обратился к знакомому праграмисту, сказал можно сделать программу которая заставит перечитать реестр не перезагружая. Но не факт что заработает, и не факт что под бартом. Сказал что проще запускать программу с командой
Цитата:
"Запустить с %temp%=С:\TEMP"
как уже писал NIKZZZZ
 

Всего записей: 438 | Зарегистр. 19-03-2009 | Отправлено: 21:59 31-07-2010
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OpenGL32

Цитата:
например DrWeb CureIt

Она распаковывается не в %Temp% , а в %Tmp%
Меняй обе переменные, у меня нет проблем.
 
mat86

Цитата:
у меня сборка на BSExplorer, может это влияет?

Не знаю, попробовать не на чем.
 
 

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 22:04 31-07-2010
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Windows Preinstallation Environment(WinPE) и BartPE LiveCD 7
vu1tur (27-01-2012 03:24): следующая часть — http://forum.ru-board.com/topic.cgi?forum=62&topic=24098


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru