Автор: Unique_nickname
Дата сообщения: 27.02.2012 16:28
BlackPhoenix28
вы вообще пургу несете какую-то на двоих. Зачем буква CD-ROM, зачем реестр, зачем копирование... самое простое - проверять метку (не букву привода!) диска.
Метка может быть, напр, именем тома ("VPMegaInst_1"), а может быть... файлом на диске.
Второе - классический пример, используется железно более двадцати лет, еще со времен дискет. Чем удобно:
- если это CD, то каждый имеет свою метку.
- если DVD или папка на жестком диске - то можно слить вместе все CD, метки при этом будут лежать рядом, и работоспособность оболочки полностью сохранится.
Можно усложнить, в сам файл-метку писать список файлов, которые должны находиться на этом диске и парсить его (для любителей сидеть с намыленной жопой за полчаса до сдачи диска).
Можно упростить: если в корне (или _SourceFolder, или где понравится) видим метку cd1, а согласно нашим данным Setup.exe должен быть на диске с другой меткой - требуем нужный диск.
При этом номер диска (он же имя файла-метки) хранится в таблице, ассоциированной с кнопкой или файл-листом, тогда не будет проблем с совпадением имен инсталляторов. Но лучше, конечно, раскладывать их по разным папкам и переименовывать сами exe-файлы, благо инсталляторы уже много лет спокойно относятся к подобным надругательствам.
Но:
самый правильный с точки зрения юзабилити вариант - просто проверять фактическое наличие нужного файла при запуске и в случае его отсутствия делать кнопку недоступной.
Одновременно в хинт или связанный лейбл выводить "(находится на втором диске)".
Ну и отладку нехило экономит такой подход заодно.