Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Environment Variables

Ответить
Настройки темы
[решено] Environment Variables

Аватара для semiono

Ветеран


Сообщения: 830
Благодарности: 33

Профиль | Отправить PM | Цитировать


Под WinXP (x64) нужно установить a = b, то-есть прочитать "а" и присвоить для "b" такое же значение.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
ProgramFilesDir = a
ProgramFilesDir (x86) = b
Я вот только не знаю будет ли работать без перезагрузки? Или какие могут быть способы может уже известные?
Во-первых надо установить сразу без перезагрузки, а во-вторых надо чтоб так и осталось.
Ато кажись комманда консоли set делает это временно, или нет?
Но я сразу обращаюсь к автоит, так как в батниках там наверное не всё реализуешь толком...

да так и есть, только на время сеанса работает
http://www.ss64.com/nt/set.html

-------
Полезное сообщение


Отправлено: 05:24, 08-05-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Вопрос не очень ясен - “прочитать "a"” откуда, а главное для чего?

Цитата semiono:
Я вот только не знаю будет ли работать без перезагрузки? »
Что будет работать?

Цитата semiono:
надо установить сразу без перезагрузки »
Что установить?

Если речь про переменные окружения, то так и спрашивайте - «Как задать переменную окружения?».

В этой библиотеке есть функция:

Код: Выделить весь код
_RegSetEnvironment("ProgramFiles", "New Path", 0, 0, 1)

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 07:13, 08-05-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для semiono

Ветеран


Сообщения: 830
Благодарности: 33

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
“прочитать "a"” откуда, а главное для чего? »
>>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
>>ProgramFilesDir = a
>>ProgramFilesDir (x86) = b
Цитата Creat0R:
Что будет работать? »
Интуиция подсказывает, что изменения вступят после перезагрузки, да и не только интуиция.
Ясное дело если заглянуть в реестр то там уже можно увидеть изменения переменных окружения.
Но вот будет ли их слушать коммандная строка!? Точно не будет!
Причём чтобы это проверить наверняка я тоже не знаю способ...
Скажем в реестре произошли изменения, но набрав в консоли SET вижу всё как и было по старому.

Сосбсно, сабж конкретно в том что я ствлю Opera в WinXP x64, у меня это "своя сборка",
с настройками, чтобы профиль читался из програмной папки, а не из Application Data.
Но так как система имеет WOW64, то там всё разделяется включая даже програмные файлы...
Кароче ставлю оперу в X:\Program Files\Opera, запускаю её и вижу что настройки слетели,
немного подумав обнаруживаю, точно, профиль лезет сюда X:\Program Files (x86)\Opera\Profile
Я понимаю, что совет будет таков, что установить оперу в X:\Program Files (x86).
Но я не собираюсь идти на поводу у тех кто это всё придумал, вместо того чтобы зделать внутреннюю
проверку, они навязывают плодить дубликаты папок!
Ладно уж с syswow64 я смирился, тут уж ничего не изменить, но зато удалив переменную
ProgramFilesDir (x86) = всё сразу становиться на свои места. ;-
Тем более это редко кому надо бывает, кроме оперы я не замечал подобного.
Проблемма толко в том, что если удалить ProgramFilesDir (x86) из реестра, то оно для программ сработает
после перезагрузки только. Хотя можно конечно забить.
Кстати, я уже решил не уравнивать переменные ProgramFilesDir (x86) = ProgramFilesDir, а просто снести лишнюю ;-

Просто хочется зделать аккуратно и красиво, с WinXP x86 у меня с этой оперой всё гладко итак!

-------
Полезное сообщение


Отправлено: 01:04, 09-05-2009 | #3


Аватара для SyDr

Старожил


Сообщения: 215
Благодарности: 62

Профиль | Отправить PM | Цитировать


Цитата:
For Files, Windows has a special redirection mechanism for some system directories :

Directories 32-bit Value 64-Bit Value
@SystemDir @WindowsDir & "\SYSWOW64" @WindowsDir & "\System32"
@ProgramFilesDir {SystemDrive} & "\Program Files (x86)" {SystemDrive} & "\Program Files"

It is possible to access the 64-bit version of those directories by disabling the redirection mechanism.


DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1)
http://msdn.microsoft.com/ru-ru/libr...87(en-us).aspx

Профиль потому туда и лезет, что Опера 32-битное приложение. Дело не только в переменных окружения но и в механизме перенаправления.

-------

"Что мы думаем, знаем или во что верим в конце концов не так уж и важно.
Важно лишь то, что мы делаем."
Джон Раскин

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:25, 09-05-2009 | #4


Аватара для semiono

Ветеран


Сообщения: 830
Благодарности: 33

Профиль | Отправить PM | Цитировать


Цитата Sylver Dragon:
Профиль потому туда и лезет, что Опера 32-битное приложение. »
Это понятно.
Цитата Sylver Dragon:
DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1) »
Чтоли есть апи которые запрещают перенаправление?? Но хотя это подходит для создателей софта, я же не смогу вызвать эту api из командной строки либо скрипта, хотя было бы кстати!

Я когда затёр "лишние" переменные окружения, опера стала читать профиль "как положенно" из {pf64}, ибо а что ей остаётся делать когда других нет

А нельзя ли рестарт эксплорера зделать? Или LogOff юзера временно и опять войти, всмысле скриптом? Кстати, очень нужная вещь!
В эксплорере есть нажатие F5, а разве нет его замены внутриним вызовом? Как это в автоит зделать?...

-------
Полезное сообщение


Отправлено: 16:05, 09-05-2009 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата semiono:
я же не смогу вызвать эту api из командной строки либо скрипта »
Из скрипта, почему нет, предложенный DllCall Это и делает

Цитата semiono:
нельзя ли рестарт эксплорера зделать? »
ProcessClose("Explorer.exe")

Цитата semiono:
В эксплорере есть нажатие F5, а разве нет его замены внутриним вызовом? Как это в автоит зделать? »
Я нечто подобное сделал в утилите Toggle Hidden Files & Files Extension.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:01, 09-05-2009 | #6


Аватара для semiono

Ветеран


Сообщения: 830
Благодарности: 33

Профиль | Отправить PM | Цитировать


Toggle Hidden Files & Files Extension. - это что-то удивительно интересное! +1

-------
Полезное сообщение


Отправлено: 14:49, 10-05-2009 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Environment Variables

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Environment error: "JAVA_HOME" should not be defined. iZEN5 Программное обеспечение Linux и FreeBSD 3 18-06-2007 15:57




 
Переход