import subprocess

startupinfo = subprocess.STARTUPINFO()
startupinfo.lpDesktop = r"WinSta0\Default"

print("Testing subprocess with lpDesktop = WinSta0\\Default...")
proc = subprocess.Popen(
    ["python", "-c", "import win32service, win32api; desk = win32service.GetThreadDesktop(win32api.GetCurrentThreadId()); print('Child Desktop:', win32service.GetUserObjectInformation(desk, win32service.UOI_NAME))"],
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE,
    text=True,
    startupinfo=startupinfo
)
stdout, stderr = proc.communicate(timeout=5)
print("STDOUT:", stdout.strip())
print("STDERR:", stderr.strip())
