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 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?