![]() |
Копирование файлов с CD
Подскажите каким образом запустить капирование (например из RunOnceEx), чтобы во время его отображалась системная анимашка с перелитающими бумажками из одной папки в другую (думаю все поняли что я имею ввиду :). Необходимо копировать большой объём данных при первой загрузке и чтоб юзер не подумал что комп подвис, было бы здорово изобразить нечто подобное...
В процессе установки у меня всплывает копирование желаемым способом, но я не знаю как это реализовано. Если я не ошибаюсь, копируются драйвера, встроенные с помощью аддона интеграции драйверов от Bashrat the Sneaky (Boa Soft), покавыряв аддон так и не понял как это сделано... |
ProkVS
Можно попробовать написать скрипт на инф. Из RunOnceEx запустится однозначно. Проблема только в том что при копировании будет кнопочка "отмена" и юзер сможет отменить копирование. А можно, например, воспользоваться каким нибудь инсталятором (многие из них поддерживают системные переменные) |
Как можно визуально показать процесс копирования файла? А то большой файл долго копируется и надо показывать пользователю сколько уже выполнено.
Declare Function CopyFileEx Lib "kernel32.dll" Alias "CopyFileExA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal lpProgressRoutine As Long, lpData As Any, ByRef pbCancel As Long, ByVal dwCopyFlags As Long) As Long · lpExistingFileName Points to a null-terminated string that specifies the name of an existing file. · lpNewFileName Points to a null-terminated string that specifies the name of the new file. · lpProgressRoutine Specifies the address of a callback function of type LPPROGRESS_ROUTINE that is called each time another portion of the file has been copied. This parameter can be NULL. For more information on the progress callback function, see CopyProgressRoutine. · lpData Specifies an argument to be passed to the callback function. This parameter can be NULL. · pbCancel Points to a Boolean variable that can be used to cancel the operation. If this flag is set to TRUE during the copy operation, the operation is canceled. · dwCopyFlags Specifies how the file is to be copied. This parameter can be a combination of the following values: COPY_FILE_FAIL_IF_EXISTS The copy operation fails immediately if the target file already exists. COPY_FILE_RESTARTABLE Progress of the copy is tracked in the target file in case the copy fails. The failed copy can be restarted at a later time by specifying the same values for lpExistingFileName and lpNewFileName as those used in the call that failed. может разберёшся (без комментариев увы) |
Вот те нате... :( Ожидал увидить некую команду... А тут.. Чтоб расшифровать этот мунускрипт у меня уйдет пол жизни :)
|
ProkVS
Если на инф то тут руководство http://oszone.net/display.php?id=3827 Запуск можно из батника примерно так: Код:
Cmdow @ /HID Код:
rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %wdir%\CAB.inf |
А если копировать из cmdlines.txt? И окошек никаких не надо, и пользователь ничего не увидит? xcopy /?
Судя по скриншоту в первом посте - INF, но там есть кнопка Отмена. |
Vadikan
Так тут же: Цитата:
Я вот тоже, больше скланяюсь к этому варианту Цитата:
|
boss911
Я видел, что при первой загрузке, потому и спросил нельзя ли копировать из cmdlines.txt. Откуда мне знать что там за файлы и откуда они копируются? |
Vadikan
Цитата:
|
Спасибо за ответы, щас попробую разобратся с предложенными вариантами...
Надо именно при первой загрузке! Специфика моей автоматической установки следующая: после установки виндовс запускается CDSwitch и предлогает сменить диск, вставляю диск под завязку набитый прогами (MS Office и т.д.), всё это добро автоматом копируется на жесткий , далее запускается WPI и после определения с выбором ПО идет установка... Можно было бы конечно настроить установку с СD, но силент установки прог такие ронимые, что я просто устал боротся с глюками и решил для успокоения души копировать всё на винт. Это конечно затягивает установку, но зато потом - неизменно превасходный результат! |
vek
Сложновастенько даются мне Inf-ы... С копированием одного файла что-то прояснилось, но папки... Если не трудно, напиши пожалуйста, как должен выглядеть мой батник в Inf виде: Код:
FOR %%i IN (D E F G H I J K L M N O P Q R S T U V W X Y Z) DO IF EXIST %%i:\wpi.ico SET CDROM=%%i: |
ProkVS
Попробуй Вот этот наборчик http://forum.oszone.net/post-434018-30.html от XXXler. Всю основную работу он сделает за тебя. А потом совсем чуток придется подправить инф. Вышли мне его на E-mail разберемся. P.S. А вообще в твоем случае лучше наверное какой нибудь инсталятор (можно будет настраивать кнопочку "отмена" при копировании, в зависимости от того, разрешить пользователю отменить процесс копирования или запретить). P.S.S. Я так понимаю тебе нужно копирование когда система уже установлена? (просто на скрине почему-то Т-13). Вот я и подумал что лучше инф. |
vek
Что значит использовать инсталятор? Какой например? После сбора дистриба винды с массой аддонов, во время установки начало появлятся копирование файлов, что я и продемонстрировал на скрине. Однако разобратся как это работает не удалось... Копировать действительно необходимо после установки виндовс, причем оно должно начатся в тот момент когда будет вставлен второй диск! У меня это реализовано с помощью пакетного файла, где команды идут попорядку: Ждать пока вставится диск - Диск вставлен - копирование (вот здесь и происходит заминка на 2-3 минуты которое необходимо чем-то заполнить ) - запуск WPI - и т.д... Попробовал воспользоватся скриптом XXXler, так он мне забубенил инф более чем на 1500 строк, насоздавал файлов и папок, вобщем наворотил будь здоров... :) Наверно это решение здесь не подходит, т.к. копируемый диск практически ежедневно обновляется и пополняется, т.е. надо будет после каждого изменения генерить новый inf, а это не практично... |
ProkVS
Ну так возьми любой инсталятор Inno например. Ну а проблема все равно останется. Инсталятор зажмет все папки в один *.exe и после каждого обновления придется пересобирать инстал заново. Вот только не пойму, зачем тебе такой геморой. Запускал-бы WPI прям с диска. У меня вот тоже винда на одном, программы на другом. Поставил Виндоус. Потом ставлю диск с софтом, а там на авторан прописан батник, который по очереди запускает перепакованный софт. И обновляется легко и не привязан к системе, а то вдруг когда-нибудь не будет под рукой именно второго диска, что делать будешь? Тебе будет система говорить: - "вставь диск", а его тю-тю!! |
vek
Цитата:
ProkVS Цитата:
|
boss911
Цитата:
ProkVS С таким параметром у тебя, наверное, получится все очень просто |
После долгого перебора возможных вариантов установки софта, остановился именно на этом, по моему мнению, самому удобному и гибкому (не факт). Сейчас меня практически всё устраивает. Устанавливал данный комплэкт более сотни раз, всё проходит без единой ошибки. В этой теме преследую две цели - украшательство и повышение квалификации, при решении таких вот мелких задач приобретаешь попутно массу полезных знаний, благо люди на этом форуме отзывчивые, за что им огромное спасибо! :)
Щас разковыряю Inno, о результатах отпишусь... |
ProkVS
Цитата:
|
Вложений: 1
"Неубиваемая" простым юзером и показываемая поверх всех окон анимашка... (с перелетающими бумажками из одной папки в другую, как того хотел автор)...
Процесс "прибивается" только через "Диспетчер задач" или утилитами типа "taskkill"... Может, кому пригодится... Буду только рад... [ не забудьте нажать ссылку "Полезное сообщение" ;) ] |
Время: 14:27. |
Время: 14:27.
© OSzone.net 2001-