Отправляет email-рассылки с помощью сервиса Sendsay

[TC] функции доступа к реестру

Приветствую TC!
сейчас разрабатываю новую для себя тему - настройка приложений через реестр при
помощи скриптов.
в частности для обеспечивания джозимости в плане отображения вида и размера окна.
и возникла проблема
реестр не изменяется
вроде функция записана правильно, но...
SetRegistryEntryString (2, "SOFTWARE","a","a")

прлобовал вот так

SetRegistryEntryString (2, "\\SOFTWARE", "a", "a")

и даже так

SetRegistryEntryString (2, "\"\\SOFTWARE\"", "a", "a")

но всё без толку.

в реестр ничего не записывается.

с уважением

Виктор Горелов

Ответить   Wed, 16 Jul 2008 07:32:21 +0400 (#763146)

 

Ответы:

Привет, Виктор.

Насколько я помню не во всех версиях JAWS функции работы с реестром
работают так, как это должно было бы быть.
Подробнее Вам об этом наверно расскажет i_chay,
он вроде как раз занимался этой проблемой в своё время.

--
С уважением, Сергей.

Ответить   Wed, 16 Jul 2008 13:21:49 +0400 (#763216)

 

Привет Сергей!
цитата

я пользуюсь как раз его учебником и в недоумении, чего я делаю не так что
функции неработают.
даже считать данные из реестра неполучается.
и вроде не новичёк в скриптовании.
при этом английские подсказки при вставке функции говорят тоже самое что и
перевод Уважаемого Анатолия.
похоже я чего-то недопонял в синтаксисе самих строковых параметров.
а версии JAWS у меня 8 и 9
проблемы же были с некоторыми сборками 5.10
с уважением
Виктор

Ответить   Wed, 16 Jul 2008 15:53:53 +0400 (#763252)

 

Здравствуйте, Виктор.

Если ваш скрипт расположен не в файле default.jss, то попробуйте добавить
use "default.jsb"

Успехов. Анатолий.

Ответить   "i_chay" Wed, 16 Jul 2008 20:58:19 +0500 (#763283)

 

Привет Анатолий!
с записью всё пошло, теперь остаётся понять почему ничитается значение.
видимо необходим вывод в hex системе потому как простой SayInteger чтобы ни
было в реестре,
упорно выдаёт 0
с уважением
виктор

Ответить   Wed, 16 Jul 2008 22:36:39 +0400 (#763302)

 

Здравствуйте, Виктор.

Лучше было бы привести код скрипта. Вот пример работающего под восьмеркой кода:
Script test ()

var

string s, string k, int value

let s = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer"

let k = "NoDriveTypeAutoRun"

let value = GetRegistryEntryDWORD (1, s, k)

SayInteger(value)

EndScript

У меня озвучивается десятичное значение, соответствующее шестнадцатеричному (или
бинарному) в реестре.

Успехов. Анатолий.

Ответить   "i_chay" Thu, 17 Jul 2008 05:10:40 +0500 (#763336)

 

Приветствую, Анатолий!
вы волшебник, всё работает.
и при этом из любого файла скриптов, а не только из Default.jss
теперь попробую предположить почему это не работает в некоторых случаях.
я ещё не окончательно уверен, но похоже функция GetRegistryEntry и
SetRegistryEntry и так далее плохо работает если в качестве параметров
применены конкретные строки.
и в тоже время нормально работает с переменными.
повторюсь, не уверен, но первая удачная запись в реестр получилась когда я
заменил первый параметр переменной, а потом при чтении я снова использовал
число и две строки.
и ничего не читалось.
я ещё это проверю более детально и отпишу на личку,
а в целом тема успешно закрыта.
с уважением
Виктор

Ответить   Thu, 17 Jul 2008 06:07:06 +0400 (#763352)