- src/ 人写代码:main.py(Fluent 界面、Light/Dark/dark1/dark2/跟随系统主题、 关于按钮;主题三件套 = setTheme + QPalette/应用级 QSS + DWM 标题栏, 修复 Light 下窗口背景/页签/标题栏仍为系统深色的问题)、edid.py (EDID/CTA/HDMI/HDR 解析)、windows_edid.py(WMI 只读)、theme.py、 test_edid.py(9 项解析测试,含随机畸形数据无崩溃检查) - assets/ 图标与生成脚本;release/ 交付:EDID-Viewer.exe(onefile 63.7MB, 启动/图标/主题已验证)+ README,与 DLPilot/release 同约定 exe 直接入库 - 流水线对齐 DLPilot:src/build_exe.py(spec 由脚本生成不入库,剔除 PATH 上 Poppler/Conda 版本化 ICU,避免 QtCore 报 WinError 127)→ package_release.py(组装 EDID-Viewer-v*-win64.zip,zip 只上传 Gitea)→ publish_gitea.py(token 走 GITEA_TOKEN,自签证书 --insecure) - agent.md 更名 AGENTS.md(DLPilot 双文档约定:README 给人 / AGENTS.md 给 Agent);根 .gitignore 增加 EDID-viewer/release/*.zip - validation/ 保留 EDID 本机/合成样本与窗口截图、关于对话框自检脚本
31 lines
1.2 KiB
PowerShell
31 lines
1.2 KiB
PowerShell
param(
|
|
[string]$ProcessName = "python",
|
|
[string]$OutPng = "$env:TEMP\edid-window.png"
|
|
)
|
|
Add-Type @"
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
public class Win32Cap {
|
|
[DllImport("user32.dll")] public static extern bool GetWindowRect(IntPtr h, out RECT r);
|
|
[DllImport("user32.dll")] public static extern bool SetForegroundWindow(IntPtr h);
|
|
public struct RECT { public int Left, Top, Right, Bottom; }
|
|
}
|
|
"@
|
|
Add-Type -AssemblyName System.Drawing
|
|
$proc = Get-Process -Name $ProcessName -ErrorAction Stop |
|
|
Where-Object { $_.MainWindowHandle -ne 0 -and $_.MainWindowTitle -like 'EDID*' } |
|
|
Select-Object -First 1
|
|
if (-not $proc) { throw "no EDID window found for process '$ProcessName'" }
|
|
$hwnd = $proc.MainWindowHandle
|
|
[Win32Cap]::SetForegroundWindow($hwnd) | Out-Null
|
|
Start-Sleep -Milliseconds 800
|
|
$r = New-Object Win32Cap+RECT
|
|
[Win32Cap]::GetWindowRect($hwnd, [ref]$r) | Out-Null
|
|
$w = $r.Right - $r.Left; $h2 = $r.Bottom - $r.Top
|
|
$bmp = New-Object System.Drawing.Bitmap($w, $h2)
|
|
$g = [System.Drawing.Graphics]::FromImage($bmp)
|
|
$g.CopyFromScreen($r.Left, $r.Top, 0, 0, (New-Object System.Drawing.Size($w, $h2)))
|
|
$bmp.Save($OutPng, [System.Drawing.Imaging.ImageFormat]::Png)
|
|
$g.Dispose(); $bmp.Dispose()
|
|
Write-Output "saved $OutPng ($w x $h2)"
|