import os
import sys
import ctypes

user32 = ctypes.windll.user32
kernel32 = ctypes.windll.kernel32

hdesk = user32.GetThreadDesktop(kernel32.GetCurrentThreadId())
name_buf = ctypes.create_unicode_buffer(256)
user32.GetUserObjectInformationW(hdesk, 2, name_buf, 256, None)

fg = user32.GetForegroundWindow()
pid = ctypes.c_ulong()
user32.GetWindowThreadProcessId(fg, ctypes.byref(pid))
title_buf = ctypes.create_unicode_buffer(512)
user32.GetWindowTextW(fg, title_buf, 512)

with open("shell_desktop_test.log", "w", encoding="utf-8") as f:
    f.write(f"Desktop: {name_buf.value}\n")
    f.write(f"FG: {hex(fg)}, PID: {pid.value}, Title: '{title_buf.value}'\n")
