|
|
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
Добрый день. Скриптом vbs прописываю переменные среды на процесс: Set Env = cmd.Environment("Process") Env("TEST") = "много букв" Проблема в следующем. Если букв не очень много, то все хорошо. А если букв действительно много, то прописывается не вся ветка. С переменными средами "USERS" все решается легко в реестре меняется тип переменной с REG_SZ на REG_EXPSND_SZ. "много букв" - представляет из себя список путей к папкам, как Path, с кучей повторяющихся путей. Может кто подскажет, где хранятся переменные на "Process" в реестре или каким иным способом обойти проблему? Может можно как-то указывать относительный путь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 12:06 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
Может можно как-то сделать из одной переменной ссылку на другую переменную? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 13:24 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
Неужели никто не знает, как обойти эту проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 09:45 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
Karlusгде хранятся переменные на "Process" в реестре Копия среды для отдельного процесса хранится только в памяти. Karlusможно как-то сделать из одной переменной ссылку на другую переменную? Нет - переменные являются статическими строками. Но можно ПРИСВОИТЬ одной переменной значение другой - тривиальным SET var2=%var1% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 12:45 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
Akina, Но если присеваемое значение не влазить в область памяти, выделенное под эту переменную. Ситуация связана с Oracle Forms. Им, для правильной работы необходима переменная FORMS60_PATH. Она может храниться как в переменных среды, так и в реестре. Чтобы осуществить запуск форм, настроенных на разные пути сделал vbs скрипт, прописывающий в переменные среды процесса нужные пути. Все работает хорошо, за исключением случая, когда пути слишком длинные в переменной FORMS60_PATH. В этом случае формса сваливается. Но если прописать эти пути в реестр или в переменные среды пользовательские, то все работает хорошо. Получается что, при присвоении длинного значения переменной FORMS60_PATH для процесса, возникает ошибка. Ищу способ обойти данную проблему. Запись значения в реестр или в пользовательскую переменную не пойдет, т.к. она остается в памяти и последующий запуск формы без перепрописывания этой переменной приведет к неправильной работе системы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 13:42 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
Karlusприсеваемое значение не влазить в область памяти, выделенное под эту переменную. Память выделяется не "под переменную", а на блок среды. KarlusПолучается что, при присвоении длинного значения переменной FORMS60_PATH для процесса, возникает ошибка. Ищу способ обойти данную проблему. Не получается у меня воспроизвести проблему: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Обе переменные присваиваются без проблем, при этом длинная более 32 кбайт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 14:32 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
Akina, Сейчас перепроверил. Действительно, проблема именно в том что форса не может такую длинную переменную обработать. Хотя из реестра она ее читает нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 15:34 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
Может посоветуете вариант типа mklink, но создавать линк на сессию, а не постоянный. Есть такая возможность. Это бы решило проблему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 16:30 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
Karlusпроблема именно в том что форса не может такую длинную переменную обработать. Хотя из реестра она ее читает нормально.Ну так клади её в реестр, какие проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2016, 17:06 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
Akina, В реестр не подходит. Т.к. в реестре ветка остается. Ее придется перезаписывать каждый раз при запуске. У меня есть набор иконок, который запускают формы со значениями переменных "по умолчанию", т.е. которые указаны в реестре. А мне нужно создать набор иконок, которые буду запускаться с иными значениями переменных. Для этого я использую vbs скрипт, который на процесс создает набор переменных. Они не сохраняются в памяти после завершения процесса. А при записи в реестр необходимо будет как-то отслеживать завершение процесса и исправлять значение реестра обратно. Нашел временное решение созданием символической ссылки (mklink /d)на ресурс с формами с более коротким именем. В этом случае у меня все отрабатывает, но остается один минус. Ссылка не удаляется. Как бы ее создавать на процесс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 10:34 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
KarlusДля этого я использую vbs скрипт, который на процесс создает набор переменных. Они не сохраняются в памяти после завершения процесса. Используйте запуск через CMD (или BAT), в нём устанавливайте нужные переменные, а потом стартуйте свой VBS-скрипт (или сразу приложение). Тогда приложение получит копию среды от родительского процесса с нужными значениями, а по завершении оно благополучно утеряется. Если не нравится мерцающее окно компроцессора - то из VBS запускайте этот CMD со скрытым окном. Более того, я бы вообще предложил из начального VBS создавать и требуемый CMD, и, если надо, финишный VBS (во временном каталоге), а потом их запускать. При этом текст вторичных запускаемых файлов будет полностью в коде начального VBS - несложно сопровождать и править. Есть и альтернативный вариант - создание для "особого" запуска приложения специального пользовательского профиля и запуск приложения от его имени. Ну и статическая настройка среды этого профиля в тот самый "особый" режим. PS. Неужели эта самая Oracle Forms не умеет из командной строки получить параметры запуска или имя файла конфигурации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 12:30 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
Akina, Oracle Forms это динозавр, он много чего не умеет. Не очень понял про CMD или BAT. Разницы же особой нет межу CMD, BAT и VBS. VBS не догма, просто я ее использовал для написания скрипта запуска формы. Получается мне не подходит просто прописать параметры, так как сама формса не жрет переменную такой длины. Мне нужно как-то после окончания работы процесса удалить линк. Но, на сколько я понял, мелкософт пока такого не делает, как создание линка на сессию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 13:40 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
Karlusпри записи в реестр необходимо будет как-то отслеживать завершение процесса и исправлять значение реестра обратно. В VBS (да и в CMD) вполне себе можно запустить дочерний процесс с приостановкой выполнения скрипта до окончания его работы, а потом подчистить хвосты. Например... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 16:07 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
Karlusмне не подходит просто прописать параметры, так как сама формса не жрет переменную такой длины. KarlusМожет посоветуете вариант типа mklink, но создавать линк на сессию, а не постоянный. Может, посмотреть в направлении SUBST? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 16:09 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
Akina, SUBST тоже создает не на сессию. Диск после работы остается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 10:06 |
|
||
|
Ошибка при прописывании переменных сред на процесс
|
|||
|---|---|---|---|
|
#18+
KarlusДиск после работы остаетсяДа и хрен бы с им... чем он тебе мешает? а ежели реально мешает - ну дави его из скрипта: Код: powershell 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2016, 13:26 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=39289077&tid=1493418]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
144ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 237ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...