du26548 2019-11-25 22:17 采纳率: 75%
浏览 569
已采纳

如何用winapi隐藏程序窗口。

简单说:我会隐藏记事本,但不会隐藏记事本的'另存为'窗口,我可以在另存为的窗口显示之后再将其隐藏,但这样很难看,不是我想要的。我希望可以一直让记事本的所有功能都在后台完成。
我做了一个python的例子。

# -*- coding: utf-8 -*- #! python2 #!/usr/bin/python
import win32api,win32con,win32gui,win32process,time
def main_():
    o = ()
    try:
        st = win32process.STARTUPINFO()
        st.dwFlags = win32con.STARTF_USESHOWWINDOW  
        st.wShowWindow = win32con.SW_HIDE  # 隐藏窗口
        o = win32process.CreateProcess(None, "Notepad", None, None, 0, win32con.NORMAL_PRIORITY_CLASS, None, None, st)
    except Exception as e:
        print e
    time.sleep(0.5)
    win32gui.EnumThreadWindows(o[3],TW,0)

def TW(h,f):
    if win32gui.GetClassName(h)=='Notepad':
        time.sleep(0.5)
        menu=win32gui.GetMenu(h)#
        menu=win32gui.GetSubMenu(menu,0)#
        menus=win32gui.GetMenuItemID(menu,2)#
        win32gui.PostMessage(h, win32con.WM_COMMAND, menus, 0)
if __name__ == '__main__':
    main_()

虽然我不太懂c++,但基本的读代码还是没问题的。。所以答案如果有c++的话非常欢迎。。

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-11-26 10:17
    关注

    需要api hook比较麻烦,不过可以换一个思路,开一个虚拟桌面,把需要隐藏的程序放在虚拟桌面上操作

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置