以下のコードを使用して、現在アクティブなウィンドウのタイトルとexeファイルパスの両方を取得しています
hwnd = win32gui.GetForegroundWindow()
_, pid = win32process.GetWindowThreadProcessId(hwnd)
if hwnd != 0 or pid != 0:
try:
hndl = win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION | win32con.PROCESS_VM_READ, 0, pid)
self.newExe = win32process.GetModuleFileNameEx(hndl, 0)
self.newWindowTitle = win32gui.GetWindowText(hwnd)
except:
self.newExe = ''
self.newWindowTitle = ''
問題は、よくあることですが、ウィンドウのタイトルが常にアプリケーション名 (アプリケーションの主要部分としてユーザーが理解する名前) であるとは限らず、これが必要なことです。たとえば、calc.exe から、ウィンドウのタイトルに依存せずに電卓を取得します。
目的は、コンピューター上の任意のソフトウェアの xml 比較使用をログに記録するスクリプトを作成することです。
これは可能ですか?