|
Чтение из 64-битной ветки реестра при 32-битном запуске exe
|
|||
---|---|---|---|
#18+
Например: Код: vbnet 1. 2. 3.
64-битный код прочитает: Код: vbnet 1.
А 32-битный на x64 полезет сюда (и в зависимости от задачи будет неправ): Код: vbnet 1.
Как объяснить .Net что в Wow6432Node лезть не надо? P.S. Требуемое поведение обеспечивается флагом KEY_WOW64_64KEY (это если через API) Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 18:36 |
|
Чтение из 64-битной ветки реестра при 32-битном запуске exe
|
|||
---|---|---|---|
#18+
Дмитрий77, по идее с помощью RegistryView : Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 20:38 |
|
Чтение из 64-битной ветки реестра при 32-битном запуске exe
|
|||
---|---|---|---|
#18+
bazile, да я нашел этот способ Есть проблема. RegistryKey.OpenBaseKey отсутствует в .Net2 Есть еще: RegistryKey.OpenRemoteBaseKey (имя машины "") Было обрадовался, но в .Net2 именно нужного параметра то и нет опять. (я все коды проверяю на совместимость с .Net2, не рискну пока закладываться на 4.5) По идее мне нужно иметь 3 варианта функций: 1) default (т.е. как Any CPU запускается на данной машине, так пусть туда и кладет) -это если свои настройки 2) force x64 -это если я точно знаю, что речь идет о ветке родной для OS (если 64-битная os) 3) force x86 -это если я точно знаю, что ключ лежит в 32-битной ветке (создан другой 32-битной программой, если 64-битная OS) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 21:02 |
|
Чтение из 64-битной ветки реестра при 32-битном запуске exe
|
|||
---|---|---|---|
#18+
Ну, получается API использовать для форсированных случаев (не так уж их у меня много, прописывать только все это опять придется). Причем допустимость запуска самого кода как 64-битного еще вынуждает добавлять KEY_WOW64_32KEY -вариант (доступ к 32-битному реестру). Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.
Для дефолтного конечно My.Computer.Registry.GetValue вполне достаточно. Net 2.0 вышел когда? В 2005? Видимо на этот момент данная проблема была не актуальна. Поддержка добавлена только в .Net 4.0 (т.е. даже в 3.5 нету ). Посему если хочу поддерживать XP- API без вариантов. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2014, 21:51 |
|
Чтение из 64-битной ветки реестра при 32-битном запуске exe
|
|||
---|---|---|---|
#18+
Дмитрий77, как кактус на вкус? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 00:03 |
|
Чтение из 64-битной ветки реестра при 32-битном запуске exe
|
|||
---|---|---|---|
#18+
ИзопропилДмитрий77, как кактус на вкус?Ты под кактусом что понимаешь? .Net как таковой? Или что? Если сравнивать .Net с VB6 то у него гораздо больше внутренних возможностей (и что касается GUI, и что касается многих других оберток). Но конечно я рассчитывал на большее, есть такое дело. Что касается реестра, то VB6 вообще нормально его читать/писать не умеет. Кроме одной ветки, типа тупо предназначенной для VB-программ. А здесь есть My.Computer.Registry Microsoft.Win32.RegistryKey что для большинства задач более чем достаточно (без вникания в битность OS и битность кода). И скорее всего я не рискну делать "Any CPU" или "x64" в первоначальном продакшн-варианте. И не уверен насчет выбора Net2.0(3.5) или Net 4.5. Но учитывать все эти ньюансы лучше сразу. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 05:15 |
|
Чтение из 64-битной ветки реестра при 32-битном запуске exe
|
|||
---|---|---|---|
#18+
Дмитрий77Ты под кактусом что понимаешь? .Net как таковой? Или что? я уже не раз говорил - неудачный выбор инструмента, приводящий к повышеным затратам времени. достаточно вынести весь код, требующий интенсивного использования WinAPI в dll, написанную на с++ способ взаимодействия - IDispatch (подойдёт для всего,хоть для Java) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 09:48 |
|
Чтение из 64-битной ветки реестра при 32-битном запуске exe
|
|||
---|---|---|---|
#18+
Изопропилдостаточно вынести весь код, требующий интенсивного использования WinAPI в dll, написанную на с++ способ взаимодействия - IDispatch (подойдёт для всего,хоть для Java)В нашем случае лучше C++/CLI. зы: Необходимость установки vcredist бесит. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 09:58 |
|
Чтение из 64-битной ветки реестра при 32-битном запуске exe
|
|||
---|---|---|---|
#18+
Алексей Кзы: Необходимость установки vcredist бесит. если аккуратно собрать - рантайм статически приликуется Алексей КВ нашем случае лучше C++/CLI. втам тоже танец с бубном может потребоваться ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 10:08 |
|
Чтение из 64-битной ветки реестра при 32-битном запуске exe
|
|||
---|---|---|---|
#18+
ИзопропилДмитрий77Ты под кактусом что понимаешь? .Net как таковой? Или что? я уже не раз говорил - неудачный выбор инструмента+1 Но может конечно игра стоит свеч, может она оплачивается большими деньгами :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 10:19 |
|
Чтение из 64-битной ветки реестра при 32-битном запуске exe
|
|||
---|---|---|---|
#18+
И стоимость поддержки возрастает в разы. Так что ТС наверное деньги лопатой гребёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 10:20 |
|
Чтение из 64-битной ветки реестра при 32-битном запуске exe
|
|||
---|---|---|---|
#18+
ИзопропилАлексей КВ нашем случае лучше C++/CLI. втам тоже танец с бубном может потребоватьсяС IDispatch бубны, конечно же, не нужны. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 10:59 |
|
Чтение из 64-битной ветки реестра при 32-битном запуске exe
|
|||
---|---|---|---|
#18+
Алексей КС IDispatch бубны, конечно же, не нужны. :-) да не нужны ну на старом фреймвоке из-за отсутсвия dynamic писанины чуть побольше ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 11:27 |
|
Чтение из 64-битной ветки реестра при 32-битном запуске exe
|
|||
---|---|---|---|
#18+
ИзопропилАлексей КС IDispatch бубны, конечно же, не нужны. :-) да не нужны ну на старом фреймвоке из-за отсутсвия dynamic писанины чуть побольшеНе верю в чудеса, надо будет как-нибудь попробовать. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2014, 11:51 |
|
|
start [/forum/topic.php?fid=20&msg=38843340&tid=1402076]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
80ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 331ms |
total: | 501ms |
0 / 0 |