20250724

0846起0159睡到0842,今天依然在赖床和憋尿之间挣扎,尿个尿起来挂挂脚本,在想要不要再去躺躺。

用别人钓鱼代码时发现pyautogui.screenshot截取副屏内容时会出现全黑画面,使用mss替换。

哎呀使用副屏问题一堆,比如1280*720的窗口用1280*720的大小去截,但截出来的图像是放大了一样,不知道和我主副屏分辨率不一样有没有关系。且mss截出来的图颜色和画面不一样。

mss 默认返回的是 BGRA 格式(含 Alpha 通道),如果你用 cv2.cvtColor 转换颜色顺序时没注意,可能导致颜色偏差。

两个显示器都是2560*1440,但一个16寸(DPI 150%),一个27寸(DPI 100%)。(才发现大屏开了锁60Hz,唉锁就锁吧,锁了性能好,夏天了别让它太过操劳是好事)

大概是DPI的问题了,

例如窗口是 1280x720 逻辑尺寸,但在 150% 缩放的屏幕上,它对应 1920x1080 真实像素

哎呀哎呀

1
2
3
4
5
6
def get_client_rect(hwnd):
    left, top, right, bottom = win32gui.GetClientRect(hwnd)
    # 转换为屏幕坐标(客户区左上、右下的屏幕绝对坐标)
    left_top = win32gui.ClientToScreen(hwnd, (left, top))
    right_bottom = win32gui.ClientToScreen(hwnd, (right, bottom))
    return (left_top[0], left_top[1], right_bottom[0], right_bottom[1])

是这里没考虑DPI,好麻烦啊。

不麻烦,有很简单的解决方法ctypes.windll.user32.SetProcessDPIAware()

这个不行,要ctypes.windll.shcore.SetProcessDpiAwareness(2)

不要先 :,: ,:3 去掉 alpha 通道再转换,否则 cv2.COLOR_BGR2RGB 会把 B 和 R 互换,导致红蓝反转。

感觉中午煮的豆腐泡到了晚上变得更好吃了。

豆腐泡本身像个小海绵,中午煮的时候吸满了汤汁,到了晚上再吃时,调味料渗透得更均匀、味道更浓郁,就像“隔夜卤味”一样,反而更香更好吃。

1
2
3
4
    if (settings.runCommandOnTop) {
      _commands.removeWhere((cmd) => cmd.name == action.name);
      _commands.insert(0, action);
    }

写了个新增item时和run时insert到顶部的逻辑,会造成_TypeError (Null check operator used on a null value)

是因为ReorderableListView 内部依赖子项的 Key 和数据的稳定性**,而你在 commands 里先 removeWhereinsert 可能让内部的 Key 对应不到数据,导致访问到 null

为什么不能removeWhere,我这应该是一瞬间执行完,且我用name作key,为什么会有问题

ReorderableListView 内部使用 Key 来确保拖拽过程中的子项状态正确映射到数据。

  • 当你 removeWhere,会触发整个列表的 rebuild。
  • 如果 Key(你用的是 name)和原来的 Widget 对不上,Flutter 会尝试复用或销毁旧的 Element,结果可能访问到 null

如果 name 不是 100% 唯一(或者在不同 item 中重复出现),就会产生 Key 冲突,导致内部状态错乱。

虽然你觉得它“一瞬间”完成,但在 Flutter 的构建流程中:

  • removeWhere 改变了 _commands,会触发一次 setState rebuild。
  • insert 又改了一次 _commands,又会触发一次 rebuild。 在 ReorderableListView 正在处理拖拽状态 时,这个“瞬间的两次修改”就会让它的内部 index 缓存无效,从而触发 _TypeError

indexWhere + removeAt + insert 更安全

总之就是indexWhere + removeAt + insert 行,而 removeWhere + insert 会触发问题,有点深邃,小记一笔。

0053来洗澡,被这个异常错误拖了这么久。今天也在星痕共鸣勾引了人类,唉mmo,唉社交,唉dps。

0103洗好澡,还是去91线接客吧,打游戏别累着自己了。然而91线爆满。

1线2线拥挤,91线和69线爆满,哎呀人们怎么这么恶俗。

今天邦多利的某皇族白毛cv被传出轨,很恐怖。有人在清算;有人发着考哥的图讲角色和声优不要联系到一起;有人讲邦邦是2.5次元企划,角色cv强绑定,甚至有通过cv给角色引流的逆向引流。唉,我从mygo和mujica就不喜欢角色cv绑一起,角色就是角色,番外的一切我都不想当真,最近高松灯的灵感菇,企鹅,咕咕嘎嘎梗也是不喜欢,灯只是一个命苦且恶毒的小女孩啊。

面对这些事,保持独立思考和情感分离真的很重要,尤其是在信息过载的时代。

你知道我为什么说灯恶毒吗。

我猜,可能是因为她的纯良带有某种伪装或者隐藏的复杂面,可能在不经意间伤害别人,或者她的行为在无形中造成了负面影响?

哈哈,你点谁呢。

0143来上床,夜晚的91线的酒吧人并不多,和喵梦拍了张照片。

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计