123456789101112131415161718192021222324252627282930313233343536373839404142 |
- # Dump lots of info about BITS jobs.
- from win32com.bits import bits
- import pythoncom
- states = dict([(val, (name[13:]))
- for name, val in vars(bits).iteritems()
- if name.startswith('BG_JOB_STATE_')])
- job_types = dict([(val, (name[12:]))
- for name, val in vars(bits).iteritems()
- if name.startswith('BG_JOB_TYPE_')])
- bcm = pythoncom.CoCreateInstance(bits.CLSID_BackgroundCopyManager,
- None,
- pythoncom.CLSCTX_LOCAL_SERVER,
- bits.IID_IBackgroundCopyManager)
- try:
- enum = bcm.EnumJobs(bits.BG_JOB_ENUM_ALL_USERS)
- except pythoncom.error:
- print "Failed to get jobs for all users - trying for current user"
- enum = bcm.EnumJobs(0)
- for job in enum:
- print "Job:", job.GetDisplayName()
- print "Description:", job.GetDescription()
- print "Id:", job.GetId()
- print "State:", states.get(job.GetState())
- print "Type:", job_types.get(job.GetType())
- print "Owner:", job.GetOwner()
- print "Errors:", job.GetErrorCount()
- print "Created/Modified/Finished times:", [str(t) for t in job.GetTimes()]
- bytes_tot, bytes_xf, files_tot, files_xf = job.GetProgress()
- print "Bytes: %d complete of %d total" % (bytes_xf, bytes_tot)
- print "Files: %d complete of %d total" % (files_xf, files_tot)
- for f in job.EnumFiles():
- bytes, total, done = f.GetProgress()
- print " Remote:", f.GetRemoteName()
- print " Local:", f.GetLocalName()
- print " Progress: %d of %d bytes - completed=%s)" % (bytes, total, done)
- print
- print
|