Войти

Показать полную графическую версию : [решено] Как лучше всего установить программы на диск D?


Страниц : [1] 2

submit
01-03-2010, 17:23
Делаю сборку только для себя. Обычно Винда стоит на С диске, а программы и пр. на диске D. И тут до меня ну никак не может допереть как этого добиться при автоматической установке. Подскажите, пожалуйста.

harleysoft
01-03-2010, 17:55
submit, если программа например запакована через Inno Setup то там можно указать ключом путь установки.

seriych
01-03-2010, 18:06
submit, harleysoft,
Я ни разу не переделывал установщики винды, но есть предположение, что можно тупо поменять значение переменной окружения %ProgramFiles% на "D:\Program Files".

submit
01-03-2010, 18:15
harleysoft, Программ много, одним Инно Сетупом не обойтись. seriych в этом смысле ближе к истине
seriych, тоесть через батник задать path?

seriych
01-03-2010, 19:08
submit,
Я имею в виду сменить значения параметров:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]
"ProgramFilesDir"="D:\\Program Files"
"CommonFilesDir"="D:\\Program Files\\Common Files"
Но делать это надо на этапе установки винды, ведь стандартные программы (Windows Media Player...) тоже ставятся в C:\ и изменение переменной может привести к их неработоспособности. Я не знаю, можно ли это сделать рашьше, чтобы Windows Media Player и проч. ставились в D. Думаю, можно. То есть изменения в реестр надо вносить до установки стандартных программ.

Если же этого сделать нельзя, то я не знаю. Придется устанавливать вручную в момент установки программ. Если у тебя все инсталляторы в .bat, то проблем с виду не будет. Казалось бы переменные, задаваемые командой set, действуют лишь на протяжении сессии, в которой они были заданы, поэтому можно в начале батника написать:
set %ProgramFiles%="D:\Program Files"
set %CommonProgramFiles%="D:\Program Files\Common Files"
И все программы установятся в D. Но когда батник отработает, переменные вернутся на стандартные, и если программа в момент установки не преобразует системные переменные в абсолютные пути, то она не будет работать. Хотя нормальные программы по идее в момент установки должны преобразовывать системные переменные в абсолютные пути, а потом создавать свои внутренние переменные- тогда все будет работать. Как это все организовано на самом деле- я не знаю. Тестируй :)
Не получится- придется для каждого инсталлятора прописывать путь установки.

submit
01-03-2010, 19:41
seriych, спасибо за ответ. Буду пробовать добавить пути через сусок. Если не получится, то через виннт или кмдлайнс.тхт(присутствие Windows Media Player и иже с ним на диске С не критично для меня)). А через WPI или прочее можно что-то наподобие такого сделать?

seriych
01-03-2010, 19:54
... виннт ... кмдлайнс.тхт ... WPI
Это все неведомые мне понятия. Но я знаю про существование разных этапов установки, поэтому и написал, что Думаю, можно. Сам я только на живую систему ставил. Пока хватало .bat и AutoIt. Причем изначально AutoIt пришлось изучить ради одной только аськи, но теперь в моих руках очень полезный инструмент- уже много где пригодилось.

Severny
01-03-2010, 20:35
ИМХО, набор прог обычно устаревает быстрее, чем состряпаешь себе сборку.
Легче покидать сразу на диск D портабельные версии.

harleysoft
02-03-2010, 14:39
Программ много, одним Инно Сетупом не обойтись »
Я вообще то пример привёл!

zenk
03-03-2010, 13:20
А параметры файла ответов разве не решают исходную задачу?


ProgramFilesDir="C:\My Program Files"

Вы можете изменить расположение директории Program Files, используемое по умолчанию. Замените имя диска и путь на ваше усмотрение, если нужно.

CommonProgramFilesDir="C:\My Program Files\My Common Files"

Вы можете изменить расположение директории CommonProgramFilesDir в директории Program Files, используемое по умолчанию. Замените имя диска и путь на ваше усмотрение, если нужно.

submit
06-03-2010, 06:53
zenk, я тоже после уже создания темы находил эту информацию. Но я пошел дальше. Конкретно к одному диску всю сборку привязывать не хотелось. А для этого должен быть выбор на какой диск установить программы. Пока что дошел только до этого
CLS
@echo off
TITLE Drive Selected


SET disk=
SET /P disk=On what drive to install programs [c/d]?
IF /I '%disk%'=='c' goto :Reg
IF /I '%disk%'=='d' goto :Reg
ECHO Please wait...

:Reg
reg add "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion" /v CommonFilesDir /t REG_SZ /d "%disk%:\Program Files\Common Files" /f
reg add "hklm\SOFTWARE\Microsoft\Windows\CurrentVersion" /v ProgramFilesDir /t REG_EXPAND_SZ /d "%disk%:\Program Files" /f

Этот батник бросаю в корень WPI и прописываю в впишных конфигах путь до него перед начало выполнения самого WPI. В будущем хотел бы получить возможность выбора диска непосредственно из окна WPI( самый идеальный вариант))).

zenk
06-03-2010, 12:50
Вы же для себя сборку делаете, а не на продажу...

Напишите маркером на одном диске "D:\Program Files", на другом "С:\Program Files"

:)

Vadikan
07-03-2010, 16:00
Лучше вообще на D не устанавливать, смысла особого нет в этом.

DmB89
07-03-2010, 17:54
В этом не только нет смысла, но ещё это чревато последствиями - в виде разнообразных глюков. Если диск "D" под NTFS, то будут проблемы с доступом к некоторым папкам. Но даже если под FAT32, стоит помнить, что не всегда программы устанавливаются в "свои" папки целиком. Некоторые размещают DLL-ки в system32, да и о реестре не следует забывать...
Переустановите вы Windows, попытаетесь запустить программу - а тут вам и облом! Оно вам надо? А потом будете пытаться искать причины глюков, заваливая форум вопросами...

submit
07-03-2010, 20:16
смысла особого нет в этом.Смысл, очень даже, для меня, большой. По аналогии с мухами и котлетами, ос на одном диске, программы на другом, файлы, педантично разложенные в папки по тематике, в третьем.
DmB89, на D устанавливал около трех лет и ни разу не сталкивался с теми проблемами, которые вы тут описали. Мне кажутся они слегка надуманными. Наверное, потому что ничего не форматирую в Fat32, считая его морально устаревшим)))

submit
09-03-2010, 19:12
Всем спасибо! Решение найдено в виде двух батников добавляющих в реестр буковку, выбор которой происходит из обычного окна WPI. Ставиш галочку напротив буковки и все))). Особое спасибо seriych за дельные советы.

Vadikan
10-03-2010, 21:58
По аналогии с мухами и котлетами, ос на одном диске, программы на другом »
Не поверю, что после переустановки ОС у вас все до одной программы работают. Чем больше программа, тем меньше шансов...

submit
12-03-2010, 04:38
В свою очередь не пойму почему это так удивляет))). Где-то явно друг друга недопонимаем. У меня обычно переустановка ОС влечет переустановку и программ. После все работает как часы (сборки правда обходил стороной). Оставлять старые программы после переустановки винды у меня ни разу даже в голову не приходило.)))Зря, да?

Vadikan
12-03-2010, 17:19
У меня обычно переустановка ОС влечет переустановку и программ. »
Так зачем их в таком случае держать на отдельном разделе? Я пытаюсь логику понять, а мухи с котлетами этого не объясняют.

seriych
13-03-2010, 02:41
Да какая разница, что из чего следует и влечет или не влечет? Человек спросил- ему более-менее помогли. А как он это применяет- это уже другой вопрос. Я вот вообще винду не переставлял ни разу за 2,5 года. Как собрал комп, так и стоит. Я даже платформу полностью обновить умудрился без переустановки (наконец-то винда это научилась делать). Не понимаю людей, сносящих винду по любому поводу. Но я даже упоминать об этом не стал, когда в тему отвечал.




© OSzone.net 2001-2012