Тема: {mdm}Zinc
Показать сообщение отдельно
Старый 29.04.2007, 23:37
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 60  
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Для MuXys
Возможно имеет значение версия цинка. У меня 2.5.0.27
Но это не главное.
Действительно, с именованием методов цинка наблюдается некоторая путаница. Папочки в левой панели regedit'a - разделы (или ветки 'branches'). Методы mdm.System.Registry.createKey, .getKeyNames и .deleteKey (у меня работают) воздействуют именно на разделы.
Далее, в правой панели regedit'a отображаются ключи: название, тип, значение. которые в данном разделе присутствуют.
на пример
Код:
var login:String = mdm.System.Registry.loadString("3", "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", "DefaultUserName");
в качестве последнего аргумента принимает имя ключа в данном разделе, а возвращает его значение.
То же относится и к .saveString(), который принимает аргументами ветку, имя ключа, значение.
и это тоже работает.
С удалением раздела (ветки) нет проблем. Но вот с удалением ключа или его значения - непонятки. .deleteValue() не работает. Да и принимает он, судя по мануалу просто ветку, имя ключа туда не вставляется...
Косяк по ходу. Увы.
Впрочем, это на мой взгляд не существенно. Удаляй ветку или изменяй значения ключей на непотребные. Ну, а про мощь dll я уже высказывался - можно и тут копнуть если ооочень надо.
Советую заглянуть сюда http://www.mdmforum.com/forum/index....hl=deletevalue - там изложен еще пара достойных идей как этот косяк спрямить. В частности, осбого внимания заслуживает использование утилиты редактирования реестра из командной строки REG DELETE.
Код:
var cmdExe = "REG DELETE раздел /v ключ";
var results = mdm.System.execStdOut(cmdExe);
mdm.Dialogs.prompt(results);
запусти cmd и набей reg delete /? или reg query /?
В общем, не мытьем так катаньем!
Да, еще. Методы .load() и .save() облегченный вариант всех прочих. В том смысле , что они воздействуют на определенную ветку в реестре, и ее не надо им указывать, ветка эта формируется при первом вызове .save(), точное ее местоположение огрворено в мануале: HKEY_CURRENT_USER\Software\<название формы приложения>\ Поэтому не удивительно, что у тебя в скрипте получался пустой ответ.
пример
Код:
go.onRelease = function() {
	mdm.System.Registry.save("myKey", "This is my Content");// записали в ключ 'myKey' значение 'This is my Content'
	var Result = mdm.System.Registry.load("MyKey");// считали только что записанное значение  
	mdm.Dialogs.prompt(Result);
};


Последний раз редактировалось alexcon314; 30.04.2007 в 01:46.