1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
Процедура Сформировать(ДискДляЗаписи="E:\",АвтоИзвлечениеСД=0,АвтоЗакрытиеМастера=1) Перем Имя,Каталог; scr=СоздатьОбъект("MSScriptControl.ScriptControl"); scr.language="javascript"; shell=СоздатьОбъект("Shell.Application"); scr.AddObject("Shell",shell); ИмяСлужбы="ImapiService"; Если Shell.CanStartStopService(ИмяСлужбы)=0 Тогда Предупреждение("Вам недозволено записывать диски СД!",5); Возврат; КонецЕсли; scr.Eval("Shell.ServiceStart('"+ИмяСлужбы+"',true)"); РасположениеФайла(Каталог,Имя); Если ФС.ВыбратьФайл(0,Имя,Каталог,"Выбирите файл для записи","Все файлы|*.*","*")=0 Тогда Возврат; КонецЕсли; fso=СоздатьОбъект("Scripting.FileSystemObject"); wshshell=СоздатьОбъект("WScript.Shell"); КаталогДляЗаписи=wshshell.regread("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\CD Burning"); fso.CopyFile(Каталог+Имя,КаталогДляЗаписи+"\"+Имя,-1); ДискДляЗаписиNS=shell.NameSpace(ДискДляЗаписи); wshshell.regwrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CD Burning\Auto Eject",АвтоИзвлечениеСД,"REG_DWORD"); wshshell.regwrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CD Burning\Auto Close",АвтоЗакрытиеМастера,"REG_DWORD"); scr.AddObject("Verbs",ДискДляЗаписиNS.items().item().verbs()); e=scr.Eval("new Enumerator(Verbs)"); Пока e.atEnd(0)=0 Цикл Если Найти(Нрег(e.item(0).name),"записать файлы на компакт-диск")>0 Тогда e.item(0).doit(); Пока wshshell.appactivate("Мастер записи компакт-дисков")=0 Цикл КонецЦикла; wshshell.sendkeys("{ENTER}") КонецЕсли; e.moveNext(0); КонецЦикла; Пока wshshell.appactivate("Мастер записи компакт-дисков")=-1 Цикл ВвестиСтроку("","Пауза",1,0,1); КонецЦикла; КонецПроцедуры |
Конечно метод дубовенький, расчитан тока на русскую версию, но можно и допеределать.
Не стал писать код определения пишущего сидирома и возможности записи (хотя на отсутствие диска или невозможность записать ОС сама укажет)…
Автор: smaharbA
А через Nero можно записать так:
1 2 3 |
<pre><code class="dos"> "C:\Program Files\Ahead\Nero\NeroCmd.exe" --no_user_interaction --write --real --iso Archive_1C --drivename M --force_erase_cdrw --dvd --dvd_high_compatibility --close_session --verify E:\Full_Archive_1C\*.* >H:\BackUp\Log\write.log |