Реестр в Vista

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Реестр в Vista

Сообщение |kerish| » 28.01.2007 (Вс) 14:14

Кто-нибудь писал уже под Висту?
Если, да, то скажите, как записывать/изменять значения в реестре?

Читать - читает, а изменять и записывать не даёт.
Права - Администратора, вроде. (Всего 1 пользователь)

Пробовал стандартными API-методами, типа RegSetValueEx.

Ошибок код не выдает, но значение не записывается/меняется :(

P.S. В XP, естественно, код работает на ура.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Re: Реестр в Vista

Сообщение GSerg » 28.01.2007 (Вс) 15:00

|kerish| писал(а):Ошибок код не выдает

Из твоих предыдущих постов... вполне можно сделать вывод, что ты используешь для этого on error goto...
Что возвращает err.lastdllerror, |kerish|?..
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 29.01.2007 (Пн) 13:34

GSerg Я незнаю почему ты сделал вывод, что я использую on error goto.

Код процедуры для записи в реестр, который я использую:

Код: Выделить всё
Public Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String)
Dim keyhand As Long
Dim R As Long
R = RegCreateKey(hKey, strPath, keyhand)
R = RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strData, Len(strData))
R = RegCloseKey(keyhand)
End Sub


Если у кого-нибудь есть пример, работающий на Vista, выложите plz...

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 29.01.2007 (Пн) 14:19

Кто-нибудь писал уже под Висту?


В Viste все системные файлы защищены от злонамеренного изменения системой безопастности.
Скорее всего, ты не имеешь прав на модификацию реестра.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.01.2007 (Пн) 16:32

jangle писал(а):В Viste все системные файлы защищены от злонамеренного изменения системой безопастности.
Скорее всего, ты не имеешь прав на модификацию реестра.


Точнее - там по умолчанию защита параноидального типа - при попытке запустить любую неподписанную программу (за подписью обращайтесь, конечно-же, в MS) или, если такая неподписанная программа пишет в что либо реестр - выскакивает окошко с предупреждением... Если подтвердить, то все продолжает работать. До следующего раза.

Эта защита отключается в настройках пользователя. Но даже будучи отключенной при каждой загрузке компьютера у трея появляется сообщение что данная защита отключена с рекомендацией включить... КАК УБРАТЬ ЭТУ МЕРЗОСТЬ ЧТОБЫ НЕ ПОЯВЛЯЛАСЬ ВООБЩЕ? Ведь понятно что покупать у MS подпись на каждую программу для большинства просто нереально...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 29.01.2007 (Пн) 16:58

|kerish| писал(а):GSerg Я незнаю почему ты сделал вывод, что я использую on error goto.

Код процедуры для записи в реестр, который я использую:

Код: Выделить всё
Public Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String)
Dim keyhand As Long
Dim R As Long
R = RegCreateKey(hKey, strPath, keyhand)
R = RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strData, Len(strData))
R = RegCloseKey(keyhand)
End Sub


Если у кого-нибудь есть пример, работающий на Vista, выложите plz...
А надо проверять err.lastdllerror
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 29.01.2007 (Пн) 16:59

Ведь понятно что покупать у MS подпись на каждую программу для большинства просто нереально...
Во первых их продает не MS, во вторых нажо покупать не подписис а сертификат. Он стоит около 900 рублей на два года, им можно подписывать любую программу.
Если действительно пишешь проги для бизнеса, то почему бы не купить?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 29.01.2007 (Пн) 17:09

Если действительно пишешь проги для бизнеса, то почему бы не купить?
Здесь проблема наоборот. Это Я ставлю кучу ЧУЖИХ неподписанных программ, а не какой-то пользователь, чьи проблемы мне до фонаря.
Лучший способ понять что-то самому — объяснить это другому.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 29.01.2007 (Пн) 17:29

переходите на Windows 2000 и не будет у вас проблем 8)

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 29.01.2007 (Пн) 17:35

Antonariy писал(а):
Если действительно пишешь проги для бизнеса, то почему бы не купить?
Здесь проблема наоборот. Это Я ставлю кучу ЧУЖИХ неподписанных программ, а не какой-то пользователь, чьи проблемы мне до фонаря.
С этим никто не спорит, я просто говорю что цифровая подпись это вовсе не такая уж и проблема
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.01.2007 (Пн) 17:56

ANDLL писал(а):
Ведь понятно что покупать у MS подпись на каждую программу для большинства просто нереально...
Во первых их продает не MS, во вторых нажо покупать не подписис а сертификат. Он стоит около 900 рублей на два года, им можно подписывать любую программу.


Да знаю я как он называется - суть не в этом. Точно так же этот сертификат приобретут и вирусописатели, если не еще проще... Дело в том что реальной защиты он не даст, а деньги на этом соберут. А для легальных программеров раз в два года раскошеливаться...

ANDLL писал(а):Если действительно пишешь проги для бизнеса, то почему бы не купить?


Хм... Кстати, если действительно 900 руб, то через кого его приобрести в Москве - контора столь небольшую сумму безналом выделит без проблем... ;)

Кстати, паспорт просят при оформлении?

Да, и легальным пользователям VB/VS могли бы сертификаты выдавать бесплатно...

:lol:
Последний раз редактировалось Andrey Fedorov 29.01.2007 (Пн) 18:01, всего редактировалось 1 раз.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.01.2007 (Пн) 17:57

Antonariy писал(а):
Если действительно пишешь проги для бизнеса, то почему бы не купить?
Здесь проблема наоборот. Это Я ставлю кучу ЧУЖИХ неподписанных программ, а не какой-то пользователь, чьи проблемы мне до фонаря.


Сейчас 99% неподписанных...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 29.01.2007 (Пн) 19:50

КАК УБРАТЬ ЭТУ МЕРЗОСТЬ ЧТОБЫ НЕ ПОЯВЛЯЛАСЬ ВООБЩЕ?


Панель управления, security center, слева Change how the security center alerts me

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 29.01.2007 (Пн) 20:21

Andrey Fedorov писал(а):Хм... Кстати, если действительно 900 руб, то через кого его приобрести в Москве - контора столь небольшую сумму безналом выделит без проблем... ;)
Сейчас задумался.
А сертификат для подписи ПО и SSL-сертификат это одно и то же иили совсем разные вещи?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.01.2007 (Пн) 20:37

ANDLL писал(а):
Andrey Fedorov писал(а):Хм... Кстати, если действительно 900 руб, то через кого его приобрести в Москве - контора столь небольшую сумму безналом выделит без проблем... ;)
Сейчас задумался.
А сертификат для подписи ПО и SSL-сертификат это одно и то же иили совсем разные вещи?


И нормальное описание применения его для VB-шного ехе-шника имеется?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 29.01.2007 (Пн) 21:56

А сертификат для подписи ПО и SSL-сертификат это одно и то же иили совсем разные вещи?


одно и тоже и совсем разное. есть сертификат и у него есть предназначения, которые там и прописаны. и их может быть как одно так и множество.

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 30.01.2007 (Вт) 12:40

Ну так выход есть из ситуации???
Как записать-то значения в реестр???

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 30.01.2007 (Вт) 12:59

2 |kerish|

Что возвращает Err.LastDllError?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 30.01.2007 (Вт) 13:25

Возвращает ноль.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 30.01.2007 (Вт) 13:40

ANDLL писал(а):
Ведь понятно что покупать у MS подпись на каждую программу для большинства просто нереально...
Во первых их продает не MS, во вторых нажо покупать не подписис а сертификат. Он стоит около 900 рублей на два года, им можно подписывать любую программу.
Если действительно пишешь проги для бизнеса, то почему бы не купить?


И все-ж - где это дело можно реально купить - желательно в Москве???
Телефон или ссылка на сайт имеется?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 30.01.2007 (Вт) 13:58

Кто-нибудь вообще с реестром в Висте работал???

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 30.01.2007 (Вт) 14:29

На три года $1295, или $895 на два года. А это совсем не 900 рублей на два года...


В одном месте нашел понятие сертификат для индивидуального разработчика, но так и не смог найти откуда у него берутся ноги - где и почем...
Последний раз редактировалось Andrey Fedorov 30.01.2007 (Вт) 16:32, всего редактировалось 1 раз.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 30.01.2007 (Вт) 15:34

|kerish| писал(а):Возвращает ноль.


Все вызовы -- 0?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 30.01.2007 (Вт) 22:08

BV Через каждую строчку выполнения предоставленного мной кода - Err.LastDllError выдает ноль. Запуск производится от учетной записи - администратора.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 30.01.2007 (Вт) 23:28

А ты в какой раздел реестра пытаешься записать-то?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 31.01.2007 (Ср) 4:52

Andrey Fedorov В HKEY_LOCAL_MACHINE. Мне именно туда надо записывать.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 31.01.2007 (Ср) 5:47

|kerish| писал(а):Andrey Fedorov В HKEY_LOCAL_MACHINE. Мне именно туда надо записывать.


Сейчас попробовал создать ключ в HKEY_LOCAL_MACHINE\SOFTWARE:

При выключенном контроле учетных записей пользователей пишет/читает записанное, regedit видит записанное - все как и раньше.

При включенном контроле учетных записей пользователей пишет/читает записанное, но при этом regedit не видит созданный ключ напрочь.

О! Нашел - ключик при этом реально создается здесь: HKEY_CLASSES_ROOT\VirtualStore\MACHINE\SOFTWARE

Осмыслить сил уже не хватает - пойду посплю часик...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 31.01.2007 (Ср) 8:59

Забавно :)
Глядишь, полноценную виртуальную машину в следующей версии сделают, чтобы и файловые изменения тоже были виртуальными.
Lasciate ogni speranza, voi ch'entrate.

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 31.01.2007 (Ср) 11:33

Хорошо, а возможно ли тогда программно выключить контроль учетных записей пользователей?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 31.01.2007 (Ср) 12:04

А подумать?
Какой смысл в таком ограничении, если его можно программно снять?
Lasciate ogni speranza, voi ch'entrate.

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 102

    TopList