サーバレス練習帳

着眼大局着手小局

開いているアプリのパスを見出す

【研究中】このプログラムは、まだ動いていないです。

@@@

sumishiro.blogspot.com

GetWindowThreadProcessIdでプロセスIDを取得

OpenProcessでプロセスハンドルを取得

EnumProcessModulesでモジュールハンドルを取得

GetModuleFileNameExでファイルパスを取得

・・・とのことです。

from win32gui import EnumWindows,GetWindowText,GetClassName,GetForegroundWindow
from ctypes import windll,wintypes,byref

        # パスの取得
        pid = wintypes.DWORD()
        print(windll.user32.GetWindowThreadProcessId(hWnd,byref(pid)))
        PROCESS_TERMINATE = 1
        hProcess = windll.kernel32.OpenProcess(1, False, pid)
        processModules = windll.psapi.EnumProcessModules(hProcess)
        # for processModule in processModules:
        # windll.win32process.GetModuleFileNameEx(hProcess, processModules[0])
        # windll.win32process.GetModuleFileNameEx(hProcess, processModules)
        # filename = windll.kernel32.GetModuleFileNameEx(hProcess, 0)
        # windll.psapi.GetModuleFileNameEx(hProcess, 0)
        filename = win32process.GetModuleFileNameEx(hProcess, 0)
        # print(fileName)
        windll.kernel32.CloseHandle(hProcess)