Spaces:
Running
Running
File size: 1,583 Bytes
10865e1 |
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# Dump lots of info about BITS jobs.
import pythoncom
from win32com.bits import bits
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()
|