After running the script, go to viewport,  
`ctrl` + `mouse_wheel_up`: Resolution Scale + 0.1  
`ctrl` + `mouse_wheel_down`: Resolution Scale - 0.1  
(Go to keymap settings, make sure there are no shortcut conflicts)

    import bpy
    from bpy.utils import register_class, unregister_class

    class SCALE_RES_UP(bpy.types.Operator):
        bl_idname = "view3d.scale_res_up"
        bl_label = "Resolution Scale Up"

        def invoke(self, context, event):
            bpy.context.preferences.view.ui_scale += 0.1
            return {'FINISHED'}

    class SCALE_RES_DN(bpy.types.Operator):
        bl_idname = "view3d.scale_res_dn"
        bl_label = "Resolution Scale Down"

        def invoke(self, context, event):
            bpy.context.preferences.view.ui_scale -= 0.1
            return {'FINISHED'}

    classes = (SCALE_RES_UP, SCALE_RES_DN)
    addon_keymaps = []
    def register():
        for cls in classes: register_class(cls)

        # Add the hotkey
        wm = bpy.context.window_manager
        kc = wm.keyconfigs.addon
        if kc:
            km = wm.keyconfigs.addon.keymaps.new(name='3D View', space_type='VIEW_3D')
            kmi = km.keymap_items.new("view3d.scale_res_up", type='WHEELUPMOUSE', value='PRESS', ctrl=True)
            addon_keymaps.append((km, kmi))
            kmi = km.keymap_items.new("view3d.scale_res_dn", type='WHEELDOWNMOUSE', value='PRESS', ctrl=True)
            addon_keymaps.append((km, kmi))

    def unregister():
        for cls in classes: unregister_class(cls)

        # Remove the hotkey
        for km, kmi in addon_keymaps:
            km.keymap_items.remove(kmi)
        addon_keymaps.clear()

    if __name__ == "__main__":
        register()

Example to make a script to add-on: https://blender.stackexchange.com/questions/263081/how-to-duplicate-parented-objects-as-one-object