You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ORPA-pyOpenRPA/Resources/WPy64-3720/python-3.7.2.amd64/Lib/site-packages/win32comext/bits/test/show_all_jobs.py

43 lines
1.6 KiB

# 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).items()
if name.startswith('BG_JOB_STATE_')])
job_types = dict([(val, (name[12:]))
for name, val in vars(bits).items()
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()