Мое почтение всем. Есть Win7 64bit, установлена в первый раздел (диск "c:"). В WinXP 32bit я держал папку Program Files на другом разделе (не системном). Часть Program Files все равно оставалась на первом (т.е. полного переноса не было), но все программы, инсталлированные после установки шли в "d:\Program Files". В 64битной системе, как я понимаю, для Program Files происходит перенаправление (Program Files/Program Files (x86)). Вопрос в том, стоит ли соблюдать предыдущую схему (разделение программ и системы) и, самое главное, чем это чревато в 64битной системе? Прошу прощения за столь странный вопрос -- с 64битными системами до этого дела не имел и хочется установить систему без потерь нервов и времени . Заранее благодарен.
>В 64битной системе, как я понимаю, для Program Files происходит перенаправление (Program Files/Program Files (x86)). По идее перенаправление происходит исключительно на уровне реестра – в "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir" прописано "D:\Program Files", а в "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\ProgramFilesDir" – "D:\Program Files (x86)". Мы говорим "D:\Program Files" из-за того, что именно такой путь и прописан в ветви "software" оригинального образа с виндой – буква изменяется, видимо, во время установки. >Вопрос в том, стоит ли соблюдать предыдущую схему Исключительно на свой страх и риск. Мы бы не рекомендовали, на самом деле. Вообще, на Win7 x64 мы ради интереса делали полный перенос "Program Files" в другую папку (на том же томе хотя); Хуже того, при этом было выполнено полное слияние "Program Files" и "Program Files (x86)". Этот перенос выполнялся уже после установки винды и повлёк за собой неработоспособность нескольких утилит: StickyNotes, SnippingTool, OnScreenKeyboard (предполагаем, что если бы перенос был выполнен на установочном образе и\или не не производилось бы слияния 32/64, то этого можно было избежать). Больше осложнений замечено не было. Как выполнялся перенос? Были изменены ключи в "HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\Windows\CurrentVersion": CommonFilesDir, ProgramFilesDir, etc. С помощью Registry Workshop были заменены все совпадения "C:\Program Files (x86)\Common Files", "C:\Program Files\Common Files", затем для других совпадающих имён папок, в конце – для "C:\Program Files (x86)" и "C:\Program Files". Выполнено копирование Program Files 32/64. Win7 активно использует жёсткие\символьные ссылки, поэтому при копировании была использована Link Shell Extension. Совпадающие имена папок в копиях "Program Files" и "Program Files (x86)" изменены – им добавлен суффикс "64" либо "32". Содержимое копии "Program Files (x86)" перенесено в копию "Program Files". Всё. Возможно, были какие-то незначительные проблемы во время переноса – всё происходило давно и сложно вспомнить все детали.
Вряд ли это принципиально менялось в Win7 да и в дальнейшем тоже будет! HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir относительно Wow6432Node то же самое ещё в WinXP 64 было. Поэтому что выше сказано всё верно 100 пудов. Кривыми могут быть лишь приложения и инсталяторы, но это тогда на их совести. Причём разделение на уровне Program Files (x86) это лишь чисто символически, оно лишь имеет реальный смысл для SysWOW64 папки. По идее библиотеки должны там лежать. А открыть 64-ю библиотеку из 32-приложения даже из C:\ не получится.
Сегодня совершенно случайно обнаружили, что osk на той машине работает. Как и все остальные перечисленные утилиты. Сложно сказать, с чем связан этот перепад – возможно, был установлен какой-то апдейт или что-нибудь.
Я очень часто игрался в смену буквы системного диска и заметил, что в ХП(а возможно и 2000-м) есть механизм "коррекции" реестра. Не исключено, что после одного из аварийных вызовов(или других) произошла коррекция и "вуаля" - все заработало.