JDK8 2019-07-19 14:31 采纳率: 0%
浏览 684
已结题

pywin32把窗体嵌入桌面 or 把程序嵌入桌面 or 把程序窗体嵌入壁纸

网上查找资料,是把目前程序的句柄设置为桌面句柄建立父子关系就可以
但我不论怎么尝试都不行,不知道哪里有问题?

方式1:失败
parent = win32gui.FindWindow("Progman", None):
child = win32gui.FindWindow("目标程序类名",None)
win32gui.SetParent(child,parent);

方式2:失败
parent = win32gui.FindWindowEx('SHELLDLL_DefView', None)
child = win32gui.FindWindow("目标程序类名",None)
win32gui.SetParent(child,parent);

方式3:失败
parent = win32gui.FindWindowEx('SysListView32', 'FolderView')
child = win32gui.FindWindow("目标程序类名",None)
win32gui.SetParent(child,parent);

方式4:失败
parent = win32gui.GetDesktopWindow()
child = win32gui.FindWindow("目标程序类名",None)
win32gui.SetParent(child,parent);

请问有没有人知道怎么实现这个效果。

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-07-19 16:42
    关注

    你查的是什么资料?这事情以前我也想过。把程序窗体嵌入壁纸这个肯定不行,因为壁纸不是窗口。
    把窗体嵌入桌面理论上可行,但是存在两个问题,一个是桌面的确是SysListView32,但是为了画桌面背景,它存在一系列自绘和调整,所以窗体放进去根本显示不出来,但用spy++可以看到。
    另一个,不同的进程,虽然放进去了,但是如果这个窗体关闭,会导致explorer崩溃,然后重新启动,窗口消失。
    如果你有别的语言的成功能做的资料,或者有什么软件做到了,可以帮你继续研究下。
    目前我看到的程序一般都是悬浮窗口或者将自己始终设置为zindex为最后(不允许在任何程序前面),达到一样的效果,可以实现。

    评论

报告相同问题?

悬赏问题

  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?