PDA

Показать полную графическую версию : Копирование файлов с CD


ProkVS
21-06-2006, 06:50
Подскажите каким образом запустить капирование (например из RunOnceEx), чтобы во время его отображалась системная анимашка с перелитающими бумажками из одной папки в другую (думаю все поняли что я имею ввиду :). Необходимо копировать большой объём данных при первой загрузке и чтоб юзер не подумал что комп подвис, было бы здорово изобразить нечто подобное...

В процессе установки у меня всплывает копирование желаемым способом, но я не знаю как это реализовано. Если я не ошибаюсь, копируются драйвера, встроенные с помощью аддона интеграции драйверов от Bashrat the Sneaky (Boa Soft), покавыряв аддон так и не понял как это сделано...

vek
21-06-2006, 08:56
ProkVS
Можно попробовать написать скрипт на инф. Из RunOnceEx запустится однозначно. Проблема только в том что при копировании будет кнопочка "отмена" и юзер сможет отменить копирование. А можно, например, воспользоваться каким нибудь инсталятором (многие из них поддерживают системные переменные)

ANDYru
21-06-2006, 10:25
Как можно визуально показать процесс копирования файла? А то большой файл долго копируется и надо показывать пользователю сколько уже выполнено.

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
21-06-2006, 12:54
Вот те нате... :( Ожидал увидить некую команду... А тут.. Чтоб расшифровать этот мунускрипт у меня уйдет пол жизни :)

vek
21-06-2006, 13:20
ProkVS
Если на инф то тут руководство http://oszone.net/display.php?id=3827
Запуск можно из батника примерно так:
Cmdow @ /HID
SET wdir=%~dp0
SET wdir=%wdir:~0,-1%
rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %wdir%\CAB.inf
или прямо из RunOnceEx примерно так:
rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %wdir%\CAB.inf

Vadikan
22-06-2006, 00:11
А если копировать из cmdlines.txt? И окошек никаких не надо, и пользователь ничего не увидит? xcopy /?

Судя по скриншоту в первом посте - INF, но там есть кнопка Отмена.

boss911
22-06-2006, 00:51
Vadikan
Так тут же:
Необходимо копировать большой объём данных при первой загрузке и чтоб юзер не подумал что комп подвис ...
ProkVS
Я вот тоже, больше скланяюсь к этому варианту
например, воспользоваться каким нибудь инсталятором (многие из них поддерживают системные переменные)

Vadikan
22-06-2006, 00:52
boss911
Я видел, что при первой загрузке, потому и спросил нельзя ли копировать из cmdlines.txt. Откуда мне знать что там за файлы и откуда они копируются?

boss911
22-06-2006, 01:13
Vadikan
спросил нельзя ли копировать из cmdlines.txtСперва не понял, что это твоой вопрос, сори! Я просто подумал, что ему важно, чтоб отображался таскбар с копированием инфы!!

ProkVS
22-06-2006, 11:30
Спасибо за ответы, щас попробую разобратся с предложенными вариантами...

Надо именно при первой загрузке! Специфика моей автоматической установки следующая: после установки виндовс запускается CDSwitch и предлогает сменить диск, вставляю диск под завязку набитый прогами (MS Office и т.д.), всё это добро автоматом копируется на жесткий , далее запускается WPI и после определения с выбором ПО идет установка... Можно было бы конечно настроить установку с СD, но силент установки прог такие ронимые, что я просто устал боротся с глюками и решил для успокоения души копировать всё на винт. Это конечно затягивает установку, но зато потом - неизменно превасходный результат!

ProkVS
22-06-2006, 13:06
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:

xcopy "%CDROM%\" "%systemdrive%\WPI\" /y /q /s

vek
22-06-2006, 13:12
ProkVS
Попробуй Вот этот наборчик http://forum.oszone.net/post-434018-30.html от XXXler. Всю основную работу он сделает за тебя. А потом совсем чуток придется подправить инф. Вышли мне его на E-mail разберемся.
P.S. А вообще в твоем случае лучше наверное какой нибудь инсталятор (можно будет настраивать кнопочку "отмена" при копировании, в зависимости от того, разрешить пользователю отменить процесс копирования или запретить).
P.S.S. Я так понимаю тебе нужно копирование когда система уже установлена? (просто на скрине почему-то Т-13). Вот я и подумал что лучше инф.

ProkVS
22-06-2006, 15:10
vek
Что значит использовать инсталятор? Какой например?

После сбора дистриба винды с массой аддонов, во время установки начало появлятся копирование файлов, что я и продемонстрировал на скрине. Однако разобратся как это работает не удалось...

Копировать действительно необходимо после установки виндовс, причем оно должно начатся в тот момент когда будет вставлен второй диск! У меня это реализовано с помощью пакетного файла, где команды идут попорядку: Ждать пока вставится диск - Диск вставлен - копирование (вот здесь и происходит заминка на 2-3 минуты которое необходимо чем-то заполнить ) - запуск WPI - и т.д...

Попробовал воспользоватся скриптом XXXler, так он мне забубенил инф более чем на 1500 строк, насоздавал файлов и папок, вобщем наворотил будь здоров... :) Наверно это решение здесь не подходит, т.к. копируемый диск практически ежедневно обновляется и пополняется, т.е. надо будет после каждого изменения генерить новый inf, а это не практично...

vek
22-06-2006, 16:06
ProkVS
Ну так возьми любой инсталятор Inno например. Ну а проблема все равно останется. Инсталятор зажмет все папки в один *.exe и после каждого обновления придется пересобирать инстал заново.
Вот только не пойму, зачем тебе такой геморой. Запускал-бы WPI прям с диска.
У меня вот тоже винда на одном, программы на другом. Поставил Виндоус. Потом ставлю диск с софтом, а там на авторан прописан батник, который по очереди запускает перепакованный софт. И обновляется легко и не привязан к системе, а то вдруг когда-нибудь не будет под рукой именно второго диска, что делать будешь? Тебе будет система говорить: - "вставь диск", а его тю-тю!!

boss911
22-06-2006, 17:02
vek
Ну а проблема все равно останется. Инсталятор зажмет все папки в один *.exe и после каждого обновления придется пересобирать инстал заново.
Необязательно, так как в Innо есть опция "вненшний", то есть указал нужную рядом дерикторию и он все будет от туда копировать куда ты ему укажеш!! Короче нечего нанадо будет перепаковывать, достаточно будет добавить\обновить файл в папке!!

ProkVS
Можно было бы конечно настроить установку с СD, но силент установки прог такие ронимые ...
В таких случаях, спасает SFX архив, который отлично пропускает ключи к главному инсталятору!!

vek
22-06-2006, 17:13
boss911
Необязательно, так как в Innо есть опция "вненшний",
Вот этого я не знал, спасибо. Иногда очень полезная вещь.
ProkVS
С таким параметром у тебя, наверное, получится все очень просто

ProkVS
22-06-2006, 17:49
После долгого перебора возможных вариантов установки софта, остановился именно на этом, по моему мнению, самому удобному и гибкому (не факт). Сейчас меня практически всё устраивает. Устанавливал данный комплэкт более сотни раз, всё проходит без единой ошибки. В этой теме преследую две цели - украшательство и повышение квалификации, при решении таких вот мелких задач приобретаешь попутно массу полезных знаний, благо люди на этом форуме отзывчивые, за что им огромное спасибо! :)

Щас разковыряю Inno, о результатах отпишусь...

boss911
22-06-2006, 20:02
ProkVSЩас разковыряю Inno, о результатах отпишусь...Тогда давайте переберемся в боле похожую по смыслу тему (http://forum.oszone.net/thread-60604-4.html), может и я чем-то смогу помоч!!

Dmitry_K
31-03-2007, 06:42
"Неубиваемая" простым юзером и показываемая поверх всех окон анимашка... (с перелетающими бумажками из одной папки в другую, как того хотел автор)...
Процесс "прибивается" только через "Диспетчер задач" или утилитами типа "taskkill"...
Может, кому пригодится... Буду только рад... [ не забудьте нажать ссылку "Полезное сообщение" ;) ]




© OSzone.net 2001-2012