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 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘