|
|
|
x64 и опять неправильные пути, реестр на сей раз...
|
|||
|---|---|---|---|
|
#18+
Вот добрался до Win2008 x64. Для совместимости моей проги с Vista-образными системами для пары файлов надо устанавливать атрибуты "от имени администратора", а для одного даже "совместимость с...win98". Как я это делаю: инсталлятор пишет в реест ключи вида: Код: plaintext 1. 2. 3. На всех системах вида XP/2003/x86/x64 сие хотя в настоящий момент и пишется но абсолютно ни на что не влияет (лень было с-му в этом месте анализировать чтоб не писало). А вот на 2008 x64 имеем бяку. Ключи ложатся не туда: Код: plaintext 1. 2. 3. Но при этом proga1.exe не знает что надо запускаться как win98, а proga2 не знает что она от имени админа. Соотв. при просмотре атрибутов из проводника их там тоже "отсутствует". Ну и естественно если поместить "ручками" ключи куда и задумывалось, все будет корректно. Какие будут идеи? Использование функций базирующихся на Код: plaintext 1. 2. 3. 4. Но подозреваю что "злые винды" поступят здесь также как с инсталлятором. Может есть API, которые именно устанавливают АТРИБУТЫ файлов, а не ключи реестра? Или скажем какое волшебное командное штатное приложение в висте, типа icacl, например, очень бы помогло? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2009, 16:07 |
|
||
|
x64 и опять неправильные пути, реестр на сей раз...
|
|||
|---|---|---|---|
|
#18+
Не, чего то я не догоняю в этой жизни... Если написать в командной строке (или в пуск-выполнить): REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "G:\Program Files (x86)\Proga\proga1.exe" /t REG_SZ /d "WIN98" /f все попадает куда надо. Засовываю то же самое напр. в VB-код: Код: plaintext 1. 2. 3. 4. 5. 6. Вас приветствует Wow6432Node!!! хоть от имени админа запускай, хоть от имени черта с рогами. И даже не сомневаюсь что с апишками будет то же самое... Или ему 64-битную прогу где-нибудь в DDK компилить надо чтобы сувал куда следует... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2009, 18:48 |
|
||
|
x64 и опять неправильные пути, реестр на сей раз...
|
|||
|---|---|---|---|
|
#18+
Дима, командная строка в Win64 это 64-х разрядное приложение и для него не происходит перенаправления, а VB6 это 32-х разрядное приложение со всеми вытекающими :( Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2009, 18:55 |
|
||
|
x64 и опять неправильные пути, реестр на сей раз...
|
|||
|---|---|---|---|
|
#18+
Да, вы правы безусловно. Похоже я подобрался к истине, она уже где-то рядом: Вот так работает как надо! /reg:64 The /reg:64 switch enables the source computer to receive the 64-bit view of the remote registry. Similarly, the /reg:32 switch enables the source computer to receive the 32-bit view of the remote registry. Этот ключ дает 32-битной проге работать как-бы от имени 64-х битной на предмет ковыряния в реестре... Код: plaintext 1. 2. 3. 4. 5. 6. В принципе этого уже достаточно. Но если хотим через API что б уж совсем красиво: Тогда читаем здесь http://blog.not-a-kernel-guy.com/2007/05/07/181 Обращаем внимание на KEY_WOW64_32KEY и KEY_WOW64_64KEY Отсюда идем на Майкрософт http://msdn.microsoft.com/en-us/library/aa384129.aspx Видим названия знакомых в общем-то функций Код: plaintext 1. 2. 3. И думаю, все должно получиться. Ясно одно: инсталлятор с этой задачей за меня не справится, придется дописывать "утилиту разбора что ето за система такая". reg.exe кстати это ж стандартная штука? Мож ее в коде и оставить? Или правильнее с API возиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2009, 19:30 |
|
||
|
x64 и опять неправильные пути, реестр на сей раз...
|
|||
|---|---|---|---|
|
#18+
Ну вот, потрудился слегка и родил через API. В принципе можно было "reg64 As Boolean" и не добавлять, а просто забубенить "Or KEY_WOW64_64KEY" ибо на 32-битках этот ключ все равно проигнорируется. Так вроде культурнее... А можно было и не париться а просто наляпать "reg.exe" + "/reg:64" через Shell..,vbhide В принципе это и через инсталлятор бы прокатило как "выполнить команду". Но... надо же иногда и окультуриваться, а то так можно и забыть как проги пишутся... Код: plaintext 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. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2009, 02:49 |
|
||
|
|

start [/forum/topic.php?fid=60&gotonew=1&tid=2160856]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
6ms |
get first new msg: |
3ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 186ms |
| total: | 287ms |

| 0 / 0 |
