Files
idapython-src/examples/ui/waitbox/show_and_hide_waitbox.py
2025-03-13 16:17:53 +01:00

51 lines
1.0 KiB
Python

"""
summary: show, update & hide the progress dialog
description:
Using the progress dialog (aka 'wait box') primitives.
keywords: actions
level: beginner
"""
import time
import random
import ida_kernwin
import ida_hexrays
import ida_funcs
import idautils
perform_decompilation=False
# Note: this try/except block below is just there to
# let us (at Hex-Rays) test this script in various
# situations.
try:
perform_decompilation = under_test__perform_decompilation
except:
pass
step_sleep = 0.5
ida_kernwin.show_wait_box("Processing")
try:
all_eas = list(idautils.Functions())
neas = len(all_eas)
for i, ea in enumerate(all_eas):
if ida_kernwin.user_cancelled():
break
ida_kernwin.replace_wait_box("Processing; step %d/%d" % (i+1, neas))
if perform_decompilation:
if not ida_hexrays.decompile(ea):
print("Decompilation failure: %x" % ea)
time.sleep(step_sleep * random.random())
finally:
ida_kernwin.hide_wait_box()