Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Задачка для ТС за деньги 
Author Message
Volniy



PostPosted: Thu Apr 12, 2007 19:03    Post subject: Reply with quote

Тогда вот такая заготовочка конечного скрипта, у меня все печатает. Операции чтения флага из реестра пока закоментировал, мешали мне.
Code:
Dim WSH, FSO
Set WSH = CreateObject("wscript.Shell")
Set FSO = CreateObject("scripting.filesystemobject")
Dim I, PrCmd, PDFFile
Const AlreadyPrinted="F:\pdf\AlreadyPrinted"

'Устанавливаем ключ реестра в рабочее состояние
MykeyValue = True
'WSH.RegWrite MyKey, MykeyValue
PDFFolders = Array("F:\pdf\1", "F:\pdf\2") ' пишем столько папок, сколько нам нужно
Printers = Array("HP LaserJet 1020", "HP LaserJet 1020") ' соответствующие принтеры для каждой папки
If FSO.FolderExists(AlreadyPrinted & "\" & Month(Date)) = False Then _
   FSO.CreateFolder AlreadyPrinted & "\" & Month(Date)
'Бесконечный цикл (выход по изменению ключа реестра)
Do While MykeyValue
   For I= LBound(PDFFolders) To UBound(PDFFolders)
      Set PDFFolder  = FSO.GetFolder(PDFFolders(I))
      PrCmd = (Printers(I))
      For Each PDFFile In PDFFolder.Files
        If UCase(FSO.GetExtensionName(PDFFile.Name))="PDF" Then
           'Печать, как таковая с помошью pdfp или как-нить иначе
           'pdfp.exe [options] [drive:][path]<filename>
           WSH.Run "c:\pdfp.exe -p """ & PrCmd & """ """ & PDFFile.Path & """" , 1, True
           ' тут команда перeименования и перемещения уже отпечатанного файла, например
           PDFFile.Name= PDFFile.Name & ".printed"
           PDFFile.Move AlreadyPrinted & "\"  & Month(Date) & "\" & FSO.GetBaseName(PDFFile.Name)
        End If
      Next
      Set PDFFolder  = Nothing
   Next
   'Пауза в мс (а нужна ли, работы ведь хватает:-)
   WScript.Sleep Delay * 1000
   'Читаем реестр
   'MykeyValue = WSH.RegRead(MyKey)
Loop
Set WSH = Nothing
Set FSO = Nothing


Last edited by Volniy on Fri Apr 13, 2007 18:55; edited 2 times in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group