Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & _
"." & "\root\cimv2")
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
("Select * From __InstanceCreationEvent Within 5 Where " _
& "Targetinstance Isa 'CIM_DirectoryContainsFile' and " _
& "TargetInstance.GroupComponent= " _
& "'Win32_Directory.Name=""c:\\\\Windows\\\\System32\\\\Spool\\\\Printers""'")
Do
Set objLatestEvent = colMonitoredEvents.NextEvent
Wscript.Echo objLatestEvent.TargetInstance.PartComponent
Loop
адаптировано из http://www.codeproject.com/Articles/42212/WMI-and-File-System-Monitoring
Кроме того, это запускает службу
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_Service")
For Each objItem in colItems
If Lcase(objitem.Name) = "spooler" Then
msgbox objitem.name & " " & objitem.status & " " & objitem.state
objitem.StartService
End If
Next
И это удаляет файлы в папке принтеров
On error resume next
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.GetFolder("c:\windows\system32\spool\Printers")
For each f in fldr.files
f.delete
Next
Показать, что вы искали. Здесь нет бесплатного написания кода. – CrakC
У меня есть сценарий, который очищает очередь печати, с которой я хочу запустить через 10 секунд после команды печати '@echo off echo. эхо Промывка очереди печати ... чистая остановка шпульницы эхо Удаление всех заданий печати ... пинг локальный -n 4> NUL дель/кв% SystemRoot% \ system32 \ Spool \ принтеры \ *. * чистый старт Spooler echo Done! ping localhost -n 4> nul' –
Это будет очень сложно (возможно, невозможно) запустить это после печати из любого приложения. Можете ли вы рассказать нам, чего вы пытаетесь достичь? Возможно, есть еще один способ добиться этого. – aphoria