import inspect
import sys
import time
from builtins import print
import pathlib
from pprint import pprint

import os
from typing import List

import json
import win32com

from win32com.client import Dispatch

# from IAktiviteler.IMfgOperasyonlar.IModlar import IlerlemeGecisModu
# from IFikatia import IFikatia
# from IMfgTakim.IMfgTakim import IMfgTakim, TakimTurIsimleri
# from IPPRDokuman import IPPRDokuman
# from IParametre import IParametre
# from IPartDokuman import IPartDokuman
# from IProduct import IProduct
# from IProgram import IProgram
# from IReferans import IReferans
# from IYardimciSiniflar import timeit, SifirKonum
# from IAktiviteler.IAktivite import IAktivite
# from IProcessDokuman import IProcessDokuman
from pythoncom import (
  CreateBindCtx  ,
  IID_IDispatch,
  GetRunningObjectTable,
)

import flet as ft


rot = GetRunningObjectTable()
rotenum = rot.EnumRunning()
while True:
    monikers = rotenum.Next()
    if not monikers: break
    ctx = CreateBindCtx(0)
    name = monikers[0].GetDisplayName(ctx, None);
    obj = rot.GetObject(monikers[0])
    print(obj)
    try:
        workbook = win32com.client.Dispatch(obj.QueryInterface(IID_IDispatch))
        print(workbook.caption)
    except Exception as e:
        print(e)