Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Ни когда не связывался, все же рискнул залезть в реестр Ну и как ожидал, натолкнулся на подводные камни.
Есть ветка в реестре HKEY_CURRENT_USER\Software. В нее нужно добавить NeoSoft\NeoBook 5\PlugInData\NeoBookDBPro. В NeoBookDBPro записать значение, допустим 123. Если ветка существует полностью HKEY_CURRENT_USER\Software\NeoSoft\NeoBook 5\PlugInData\NeoBookDBPro. То командой
Ни чего не прописывается. По отладчику смотрю, вроде как запись сделана. По факту, нет.Что не правильно делаю? Плюс ко всему, как добавить путь NeoSoft\NeoBook 5\PlugInData\NeoBookDBPro, если он в реестре не существует?
mishem, у меня все работает как надо, а изменения в Реестре пожно увидеть после перезапуска редактора Реестра.
Quote (mishem)
Мож это и есть, что то особенное?
Нет, это - обычная рутина. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
надо отключить вывод необушных сообщений, и при первом старте отлавливать эту ошибку через [LastError] и создавать ключ. Посмотри в теме про закладки, там это есть, и говорят что создание ключей работает ) Как задавать вопросы
И не стоИт. Готовый проект запускаю. Там где стоИт, без ошибок. Но видешь выше куда прописывает? В чем засада?
Добавлено (21 Январь 2010, 12:41) --------------------------------------------- Блин, во я конь. RegistryWrite "HKEY_CURRENT_USER" "HKEY_CURRENT_USER\Software\NeoSoft\ Куда ж ей еще прописывать? Вот что значит не внимательность, блин.
Значит не должно создавать В реестре имеются стандартные ключи, разделы реестра, скажем так, полный путь к значению в реестре разделяется на две части, левая это стандартный ключ, и он не может иметь нестандартное значение, и правая произвольная часть, которую ты можеш менять по своей нужде. invalid registry key!-это ты не правильно написал правую часть, итого HKEY_LOCAL_MACHINE ключ \SOFTWARE\Microsoft\Windows\CurrentVersion\Run путь к разделу "SpIDerMail"= имя параметра "\"C:\\Program Files\\DrWeb\\spiderml.exe\"" его значение. Если у тебя затык, не мучай ж-пу, зайди в редактор реестра и скопируй имя раздела.
Quote (mishem)
А вот с этим как быть?
RegistryRead пути не создает, RegistryWrite создаст. В некоторых командах могут использоваться сокращенные имена HKEY_LOCAL_MACHINE - HLM, как правильно читай в доках. Так что в основном у тебя проблема с очепятками. А нет!
Alex3A, В принципе все, разобрался. Не внимательность.
Quote (Alex3A)
Что это такое, ты мне скажи ? "123" это имя параметра, значение или еще что?
Это к примеру. Там все правильно. Тут есть с плагином засада. Пока с проектом работаешь на том компе где он зарегистрирован, проблем нет. Но как запускаешь на другом, где NeoBook вообще не стоял, выскакивает окно. мол не зарегистрирован. Вот я и хочу добавить при запуске программы, данные в реестр. В принципе все получилось. Но есть другая проблема. При первом запуске, окно с сообщением что ключ инвалид так и выскакивает. Эту проблему решил отключением сообщений об ошибке. Но так же при первом запуске и закрытии программы выскакивает и окно о том что плагин не зарегистрирован. Потом правда все в норме.Но мне такой вариант не нравится. Хочется чтоб без проблем было? Мож при помощи батника как то можно? Я понимаю так, что все это должно произойти до запуска самой программы.
Добавлено (21 Январь 2010, 13:28) --------------------------------------------- Во блин, въехал откуда "ключ инвалид" Я там вначале на проверку прописал, есть ли значение в таком то ключе, а ключа то еще нет.
mishem, это конечно хорошо что ты рзбираешся с реестром, но есть путь и по проще, просто экспортируеш ветку реестра в файл, а затем запускаеш его на нужном компе, дешево и сердито.
Alex3A, Да это понятно, есть такой файл. Но хочется сделать так сказать на будущее. Не одному ж мне это может понадобиться. И когда файл запускаешь, он спрашивает, внести изменения. А некоторые люди пугаются таких вещей. Alex3A, а ты не можешь мне батничек написАть? Я ж так понимаю он без всяких вопросов должен будет добавлять значение.? Не хочешь читать хелп?
Для особо непонятливых объясняю: Запускаеш регедит, находиш папку NeoSoft, правым кликом мыша, в появившемся меню, выбрать "экспортировать", сохранить в файл под понравившемся тебе именем, у тебя будет создан файл твоеимя.reg если потом на другом компе дважды по нем кликнуть или запустить его из проекта, так же как ты запускаеш ехе файлы, то все записи перенесутся в реестр. Таким образом, никаких батников-шматников не нужно, регфайл сам по себе все сделает. Если надо экспортировать не весь раздел нб, а только какую либо ветку PlugInData или NeoBookDBPro то экспортируеш только ее.
Граждане. Не пойму зачем такие сложности, когда нужную запись в Реестр можно сделать прямо из проекта одной единственной командой. А при первом запуске, если плагин зареген с забаненым ключом, по-любому выскочит наг-скрин. Поэтому запись в Реестр надо вносить ранее, до первого запуска, например, при установке программы, т.е инсталлятором. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
DEMBEL, Игрался, итак и эдак... Только одну папку сохраняет. Не беда. Peter, подсказал наилучшее решение. Все ра-бо-та-ет на ураааа! Не хочешь читать хелп?
вывваливается всегда когда нет ключа или раздела, это одно из неудобств по работе с реестром, то что нет простой проверки на наличие, нет также возможности вывести список значений в разделе или разделов в ветке. Для более-менее удобной работы с реестром нуна ставить плаг, на оф сайте есть, или у Давида
Чтобы сообщение об ошибках не вылетало (в проектах 5.5), нужно перед командой чтения из Реестра просто отключить вывод сообщения об ошибке:
ShowErrors "False"
Произвести все необходимые чтения, а затем снова включить (если надо):
ShowErrors "True"
Причем, никакие особые проверки "на наличие" не потребуются - в случае отсутствия ключа просто вернется пустое значение.
Кроме того, сообщения об ошибках можно сразу заранее отключить в опциях настроек проекта, и включить, когда нужно.
Примечание: команда ShowErrors отключает только вывод сообщений, переменная [LastError] не отменяется.
Кстати, эта переменная [LastError] и может послужить той самой проверкой "на наличие" отсутствия или на отсутствие наличия, присутствие наличия, наличие присутствия, и т.п. Она для этого и придумана.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Я устанавливал это чисто эксперементальным путем. Сейчас "расширенно" проверил, и как-то странно работает: в одних случаях выдает ошибку, в других нет...
Зависимость я так пока и не понял. Попробую выяснить при случае.
Короче (чего париться-то), если надо, чтобы не выскакивало, применяйте всегда ShowErrors "False".
Добавлено (22 Январь 2010, 21:06) --------------------------------------------- Понял теперь в чем секрет. Это была МОЯ ошибка, сорри. Ошибка выскакивает в тех случаях (и в 5.6 тоже), если ветка Реестра в секции в команде NeoBook ПРОПИСАНА, но НЕ СУЩЕСТВУЕТ. Если ветка существует, но нужный параметр отсутствует, то ошибка выскакивать не будет, а просто вернется пустое значение. Если же в команде ветка вообще не прописана, то тоже ошибка не выскочит.
Т.е. в итоге получается так: если "путь" к ключу (параметру) существует, то ошибки не будет, даже если параметр (а не его значение) отсутствует, в противном случае будет ошибка.
папка PlugInData существует, то ошибки не будет, даже если параметр NeoBookDBPro отсутствует. Если папки PlugInData вообще нет, то выскочит ошибка.
P.S. Я подправил свой предыдущий пост, дабы не вводить в заблуждение людей.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Пытаюсь записать в реестр двоичный код (REG_BINARY). Выбор пал на плагин RACAutoIt3X. Выполняю команду: RAC_RegWrite"HKEY_CURRENT_USER\Software\Temp""Example""REG_BINARY""0636....06EB(1536 знаков)" Ключ не создается. Каким образом еще можно записать ключ типа REG_BINARY?