精华内容
下载资源
问答
  • windows 窗口实现隐藏任务栏预览

    千次阅读 2017-06-22 23:43:50
    通常来讲,一个windows 窗口就会在任务栏下面拥有一个预览窗口,这是一件多么和谐的事情呀。本来不用过多处理,而且用户也比较希望通过小窗口实现预览切换,但是,ux为了用户体验,就是不希望任务栏出现相应的预览...

          通常来讲,一个windows 窗口就会在任务栏下面拥有一个预览窗口,这是一件多么和谐的事情呀。本来不用过多处理,而且用户也比较希望通过小窗口实现预览切换,但是,ux为了用户体验,就是不希望任务栏出现相应的预览窗口。美其名曰体验,实则实在是争执不过他们(主要懒得理)。不管是人在江湖,身不由己,还是心甘情愿为ux服务。该实现的功能还是要实现的,总不能拿刀架在人家脖子上吧,这世界总是比较和谐的。

         闲话少说,步入正题。

         实现这种需求,记得有几种方式,一种是创建窗口的时候,设置WS_EX_TOOLWINDOW的属性。此种方式副作用主要有两个,其一是窗口可以拖到任务栏以下,然后松开拖动后,窗口再也无法显示出来了,解决方式当然是设置窗口HWND_TOPMOST。可是这样窗口会一直保持在最前端,进而影响其他窗口的层级顺序,出现不想隐藏的隐藏了,想显示的又被遮挡的尴尬局面,因此不算是一个比较好的解决方案。另外一个坏处是当打开其他的窗口时,最小化窗口时,该窗口也会跟着隐藏。其实也不是真正的隐藏,只是窗口的Z_order层级发生了变化,躲到了别的top窗口后面了。解决方案同样设置窗口HWND_TOPMOST。但该属性万不得已还是不能设置的。

         另外一种是比较好的方式,目前已经实现,似乎还没发现什么副作用。即创建一个窗口,不显示该窗口,以此窗口作为待隐藏预览窗口的父窗口,经检验能比较好的解决问题。以后相关问题,再继续深入探讨。

         

    展开全文
  • Windows 任务计划隐藏显示黑窗口,主要通过.VBS文件调用.bat文件或者.exe文件, 然后通过windows调度任务调度.VBS文件 1、 创建记事本后缀为.VBS ...

    Windows 任务计划隐藏显示黑窗口,主要通过.VBS文件调用.bat文件或者.exe文件,

    然后通过windows调度任务调度.VBS文件

    1、 创建记事本后缀为.VBS


    2、编辑.VBS文件内容:

    CreateObject("WScript.Shell").Run "cmd /c D:/Tuxun/kittle/Kittle_job/Kittle_Events_1.bat",0
    

    注意:修改自己的.bat文件路径,最后的一个参数为 0,不显示给窗口;1为显示窗口

    3、调用windows定时任务:

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31441024/viewspace-2641602/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/31441024/viewspace-2641602/

    展开全文
  • Windows系统下完全隐藏桌面窗口

    千次阅读 2019-02-19 14:12:40
    玩梦幻单刷侠士水陆的时候,需要切换窗口,把多余的窗口隐藏掉. 由于python的GUI开发不熟,界面是自己都觉得真丑! 不过能用就行…没耐心调窗口,主要还是因为不熟! 界面: 有时间再优化下lable的显示字符. 由于有些程序...

    过年在家,有时候想玩下游戏,又不想别人看到.
    玩梦幻单刷侠士水陆的时候,需要切换窗口,把多余的窗口隐藏掉.

    由于python的GUI开发不熟,界面是自己都觉得真丑!
    不过能用就行…没耐心调窗口,主要还是因为不熟!

    界面:
    能用就好
    有时间再优化下lable的显示字符.
    由于有些程序需要权限运行,
    用bat脚本启动,获取权限后再运行:

    @ echo off
    %1 %2
    ver|find "5.">nul&&goto :Admin
    mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas",1)(window.close)&goto :eof
    :Admin
    start "" "C:\Users\xx\Desktop\测试\隐藏窗口.py"
    

    思路:
    用win32api获取当前窗口的句柄pid.

    隐藏界面:

    win32gui.ShowWindow(win32gui.FindWindow(None, s), win32con.SW_HIDE)
    

    显示界面:

     def show_it(s):
                win32gui.ShowWindow(win32gui.FindWindow(None, s), win32con.SW_SHOW)
    

    app.state(‘icon’)使自身最小化.
    然后隐藏自身到托盘.

    实现托盘化代码来自
    https://blog.csdn.net/maqunfi/article/details/82943209
    感谢 ?

    以下为代码,上面为托盘部分代码,最后为隐藏部分代码,
    基本是win32 的封装,开发文档比较难懂,不怎么会用,缺少示例…
    还是因为我太菜了,哈哈哈

    from tkinter import *
    import win32api
    import win32con
    import win32gui_struct
    import win32gui
    import os
    
    
    class SysTrayIcon(object):
        QUIT = 'QUIT'
        SPECIAL_ACTIONS = [QUIT]
        FIRST_ID = 1314
    
        def __init__(s,
                     icon,
                     hover_text,
                     menu_options,
                     on_quit=None,
                     default_menu_index=None,
                     window_class_name=None, ):
            s.icon = icon
            s.hover_text = hover_text
            s.on_quit = on_quit
    
            menu_options = menu_options + (('退出', None, s.QUIT),)
            s._next_action_id = s.FIRST_ID
            s.menu_actions_by_id = set()
            s.menu_options = s._add_ids_to_menu_options(list(menu_options))
            s.menu_actions_by_id = dict(s.menu_actions_by_id)
            del s._next_action_id
    
            s.default_menu_index = (default_menu_index or 0)
            s.window_class_name = window_class_name or "SysTrayIconPy"
    
            message_map = {win32gui.RegisterWindowMessage("TaskbarCreated"): s.refresh_icon,
                           win32con.WM_DESTROY: s.destroy,
                           win32con.WM_COMMAND: s.command,
                           win32con.WM_USER + 20: s.notify, }
            # 注册窗口类。
            window_class = win32gui.WNDCLASS()
            window_class.hInstance = win32gui.GetModuleHandle(None)
            window_class.lpszClassName = s.window_class_name
            window_class.style = win32con.CS_VREDRAW | win32con.CS_HREDRAW;
            window_class.hCursor = win32gui.LoadCursor(0, win32con.IDC_ARROW)
            window_class.hbrBackground = win32con.COLOR_WINDOW
            window_class.lpfnWndProc = message_map  # 也可以指定wndproc.
            s.classAtom = win32gui.RegisterClass(window_class)
    
        def show_icon(s):
            # 创建窗口。
            hinst = win32gui.GetModuleHandle(None)
            style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU
            s.hwnd = win32gui.CreateWindow(s.classAtom,
                                           s.window_class_name,
                                           style,
                                           0,
                                           0,
                                           win32con.CW_USEDEFAULT,
                                           win32con.CW_USEDEFAULT,
                                           0,
                                           0,
                                           hinst,
                                           None)
            win32gui.UpdateWindow(s.hwnd)
            s.notify_id = None
            s.refresh_icon()
    
            win32gui.PumpMessages()
    
        def show_menu(s):
            menu = win32gui.CreatePopupMenu()
            s.create_menu(menu, s.menu_options)
            # win32gui.SetMenuDefaultItem(menu, 1000, 0)
    
            pos = win32gui.GetCursorPos()
            # See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/menus_0hdi.asp
            win32gui.SetForegroundWindow(s.hwnd)
            win32gui.TrackPopupMenu(menu,
                                    win32con.TPM_LEFTALIGN,
                                    pos[0],
                                    pos[1],
                                    0,
                                    s.hwnd,
                                    None)
            win32gui.PostMessage(s.hwnd, win32con.WM_NULL, 0, 0)
    
        def destroy(s, hwnd, msg, wparam, lparam):
            if s.on_quit: s.on_quit(s)  # 运行传递的on_quit
            nid = (s.hwnd, 0)
            win32gui.Shell_NotifyIcon(win32gui.NIM_DELETE, nid)
            win32gui.PostQuitMessage(0)  # 退出托盘图标
    
        def notify(s, hwnd, msg, wparam, lparam):
            if lparam == win32con.WM_LBUTTONDBLCLK:  # 双击左键
                pass  # s.execute_menu_option(s.default_menu_index + s.FIRST_ID)
            elif lparam == win32con.WM_RBUTTONUP:  # 单击右键
                s.show_menu()
            elif lparam == win32con.WM_LBUTTONUP:  # 单击左键
                nid = (s.hwnd, 0)
                win32gui.Shell_NotifyIcon(win32gui.NIM_DELETE, nid)
                win32gui.PostQuitMessage(0)  # 退出托盘图标
                if Main: Main.root.deiconify()
            return True
    
        def _add_ids_to_menu_options(s, menu_options):
            result = []
            for menu_option in menu_options:
                option_text, option_icon, option_action = menu_option
                if callable(option_action) or option_action in s.SPECIAL_ACTIONS:
                    s.menu_actions_by_id.add((s._next_action_id, option_action))
                    result.append(menu_option + (s._next_action_id,))
                else:
                    result.append((option_text,
                                   option_icon,
                                   s._add_ids_to_menu_options(option_action),
                                   s._next_action_id))
                s._next_action_id += 1
            return result
    
        def refresh_icon(s, **data):
            hinst = win32gui.GetModuleHandle(None)
            if os.path.isfile(s.icon):  # 尝试找到自定义图标
                icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
                hicon = win32gui.LoadImage(hinst,
                                           s.icon,
                                           win32con.IMAGE_ICON,
                                           0,
                                           0,
                                           icon_flags)
            else:  # 找不到图标文件 - 使用默认值
                hicon = win32gui.LoadIcon(0, win32con.IDI_APPLICATION)
    
            if s.notify_id:
                message = win32gui.NIM_MODIFY
            else:
                message = win32gui.NIM_ADD
            s.notify_id = (s.hwnd,
                           0,
                           win32gui.NIF_ICON | win32gui.NIF_MESSAGE | win32gui.NIF_TIP,
                           win32con.WM_USER + 20,
                           hicon,
                           s.hover_text)
            win32gui.Shell_NotifyIcon(message, s.notify_id)
    
        def create_menu(s, menu, menu_options):
            for option_text, option_icon, option_action, option_id in menu_options[::-1]:
                if option_icon:
                    option_icon = s.prep_menu_icon(option_icon)
    
                if option_id in s.menu_actions_by_id:
                    item, extras = win32gui_struct.PackMENUITEMINFO(text=option_text,
                                                                    hbmpItem=option_icon,
                                                                    wID=option_id)
                    win32gui.InsertMenuItem(menu, 0, 1, item)
                else:
                    submenu = win32gui.CreatePopupMenu()
                    s.create_menu(submenu, option_action)
                    item, extras = win32gui_struct.PackMENUITEMINFO(text=option_text,
                                                                    hbmpItem=option_icon,
                                                                    hSubMenu=submenu)
                    win32gui.InsertMenuItem(menu, 0, 1, item)
    
        def prep_menu_icon(s, icon):
            ico_x = win32api.GetSystemMetrics(win32con.SM_CXSMICON)
            ico_y = win32api.GetSystemMetrics(win32con.SM_CYSMICON)
            hicon = win32gui.LoadImage(0, icon, win32con.IMAGE_ICON, ico_x, ico_y, win32con.LR_LOADFROMFILE)
    
            hdcBitmap = win32gui.CreateCompatibleDC(0)
            hdcScreen = win32gui.GetDC(0)
            hbm = win32gui.CreateCompatibleBitmap(hdcScreen, ico_x, ico_y)
            hbmOld = win32gui.SelectObject(hdcBitmap, hbm)
            brush = win32gui.GetSysColorBrush(win32con.COLOR_MENU)
            win32gui.FillRect(hdcBitmap, (0, 0, 16, 16), brush)
            win32gui.DrawIconEx(hdcBitmap, 0, 0, hicon, ico_x, ico_y, 0, 0, win32con.DI_NORMAL)
            win32gui.SelectObject(hdcBitmap, hbmOld)
            win32gui.DeleteDC(hdcBitmap)
            return hbm
    
        def command(s, hwnd, msg, wparam, lparam):
            id = win32gui.LOWORD(wparam)
            s.execute_menu_option(id)
    
        def execute_menu_option(s, id):
            menu_action = s.menu_actions_by_id[id]
            if menu_action == s.QUIT:
                win32gui.DestroyWindow(s.hwnd)
            else:
                menu_action(s)
    
    
    class _Main:
    
        def main(s):
            #########################      tkinter界面设定      #####################################
            import win32gui
            import win32con
    
            app = Tk()
            app.geometry("300x600")
            app.title("隐藏窗口")
            scrollbar = Scrollbar(app)
            scrollbar.pack(side=RIGHT, fill=Y)
            label = Label(text="请选择需隐藏的",
                          justify=LEFT,
                          font=("楷书", 20, 'bold'),
                          anchor='w',
                          bg="#A2CD5A").pack(fill = BOTH)
            listb = Listbox(yscrollcommand=scrollbar.set, bg="#A2CD5A", font=("宋体", 15))
            listb.pack(fill=BOTH, expand=True)
            scrollbar.config(command=listb.yview)
            Button(text="隐藏", font=15, width=10, height=2,
                   command=lambda: tray_it(str(listb.get(listb.curselection())).split("/")[0])).pack()
            Button(text="显示", font=15, width=10, height=2,
                   command=lambda: show_it(str(listb.get(listb.curselection())).split("/")[0])).pack()
            Button(text="关闭", font=15, width=10, height=2,
                   command=lambda: kill(int(listb.get(listb.curselection()).split("/")[-1]))).pack()
            Button(text="托盘自己", font=15, width=10, height=2,
                   command= lambda:hide_self()).pack() #点击隐藏自身,即点击最小化按钮.
    
            hwnd_title = dict()
    
            def get_hwnd(hwnd, arg):
                if win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd):
                    hwnd_title.update({hwnd: win32gui.GetWindowText(hwnd)})
    
            win32gui.EnumWindows(get_hwnd, 0)
            for h, t in hwnd_title.items():
                if t is not "":
                    listb.insert(END, t + "/" + str(h))
    
            def hide_self():
                app.state('icon')
    
            def kill(pid):
                win32gui.PostMessage(pid, win32con.WM_CLOSE, 0, 0)
                try:
                    listb.delete(listb.curselection())
                except:
                    pass
                else:
                    pass
    
            def tray_it(s):
                win32gui.ShowWindow(win32gui.FindWindow(None, s), win32con.SW_HIDE)
    
            def show_it(s):
                win32gui.ShowWindow(win32gui.FindWindow(None, s), win32con.SW_SHOW)
    
            #app.mainloop()
    
            ###########################     开始托盘程序嵌入     #####################################
            s.root = app
            icons = os.getcwd() + r'\robot.ico'
             # print(icons)
            hover_text = "点击恢复"  # 悬浮于图标上方时的提示
            menu_options = ()
            s.sysTrayIcon = SysTrayIcon(icons, hover_text, menu_options, on_quit=s.exit, default_menu_index=1)
    
            s.root.bind("<Unmap>", lambda event: s.Unmap() if s.root.state() == 'iconic' else False)
            s.root.protocol('WM_DELETE_WINDOW', s.exit)
            s.root.resizable(0, 0)
            s.root.mainloop()
    
        def switch_icon(s, _sysTrayIcon, icons='D:\\2.ico'):
            _sysTrayIcon.icon = icons
            _sysTrayIcon.refresh_icon()
            # 点击右键菜单项目会传递SysTrayIcon自身给引用的函数,所以这里的_sysTrayIcon = s.sysTrayIcon
    
        def Unmap(s):
            s.root.withdraw()
            s.sysTrayIcon.show_icon()
    
        def exit(s, _sysTrayIcon=None):
            s.root.destroy()
            # print('exit...')
    
    
    if __name__ == '__main__':
        Main = _Main()
        Main.main()
    
    
    展开全文
  • windows隐藏console窗口

    千次阅读 2016-11-14 19:18:54
    1 问题想写一个程序,调用另外一个命令,双击运行时直接后台运行,执行时不弹出console黑窗口。2 解决方案最开始使用system( ...#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup") 使得子系统和

    1 问题

    想写一个程序,调用另外一个命令,双击运行时直接后台运行,执行时不弹出console黑窗口。

    2 解决方案

    最开始使用system( "your_cmd" );这样的方式,必然会有console窗口一闪而过。

    后来查资料看到有人提出了添加链接器选项
    #pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")
    使得子系统和函数入口不匹配,就不会弹出黑色console窗口。

    但是我的代码中默认调用了一个system函数,这句话实际是用cmd.exe执行一个命令行,
    所以它还是会弹出黑窗。

    接下来就需要用winapi来解决了,一般常规用法是CreateProcess,但是我发现了一个
    Deprecated的api更好用,WinExec,原型是

    #include <windows.h>
    UINT WINAPI WinExec(
      _In_ LPCSTR lpCmdLine,
      _In_ UINT   uCmdShow
    );

    Note This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.
    竟然可以从16位兼容到现在,可以知道微软的兼容多么猛了。

    所以只需要将system( "your_cmd" );
    替换成WinExec( "cmd.exe /c your_cmd", SW_HIDE );

    展开全文
  • Python - windows - 隐藏Console窗口

    千次阅读 2011-04-19 14:37:00
    Python - windows - 隐藏Console窗口
  • 答案:通过FindWindow函数获取,参数有两个,分别为窗口名和窗口所属类的类名,输入一个即可,另一个可以为NULL。返回值是HWND类型。需要的头文件是#include &lt;Windows.h&gt;,库为user32.dll。 第二步,...
  • 说明:【任务计划】,有时候被大家称作为【计划任务】,大家习惯上都叫Windows计划任务,实际上人家真的名字叫【任务计划】:请看,有图有真相 之前做项目的时候,遇到过这个不算问题的问题,不隐藏执行界面“小黑...
  • 隐藏windows脚本bat的窗口

    千次阅读 2018-01-19 16:41:29
    使用vbs实现(推荐) CreateObject("WScript.Shell").Run "D:\syncthing\syncthing.exe",0或者批量运行:Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c start winrar.exe",vbhide ws.run "cmd /c start ...
  • windows/mfc 隐藏窗口接受消息的问题

    千次阅读 2016-11-22 00:43:09
    实现隐藏窗口 的显示我要实现的功能是 程序一直将窗口隐藏起来,当接收到其他程序发送过来的消息之后 就显示,执行任务,完成之后继续隐藏起来。
  • 隐藏pythonGUI windows窗口终端

    千次阅读 2008-08-27 17:58:00
    相关文章: 关于django Ruby和Python的语法差别 推荐圈子: Python 更多相关推荐 new ... 做GUI系统的时候,总是想去掉DOS窗口,而一般的做法是用pythonw.exe启动。很可惜,目前的2.5版本的pythonw是有一些bug的。见:ht
  • 隐藏go程序自己的cmd窗口go build -ldflags -H=windowsgui 隐藏调用的外部程序的cmd窗口cmd := exec.Command("sth") if runtime.GOOS == "windows" { cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} }
  • Redis在windows隐藏cmd窗口启动

    千次阅读 2016-10-27 17:44:59
    作为初学者经常简单粗暴...所以可以通过命令,把redis设置成windows的服务: redis-server.exe --service-install redis.windows.conf --loglevel verbose 然后就可以windows系统中的服务中启动redis了。 卸载redi
  • Windows 启动外部程序并隐藏窗口

    千次阅读 2020-01-14 18:15:25
    Windows中,要启动外部程序...下面我们用CreateProcess来创建一个进程,并隐藏新进程的窗口。 #include "stdafx.h" #include <windows.h> #include <process.h> #include <assert.h> int _...
  • Windows界面编程第六篇 动画启动效果(动画效果显示及隐藏窗口)》 http://blog.csdn.net/morewindows/article/details/8656068 配套程序。 能动画方式显示和隐藏窗口和对话框程序,能用于Win32和MFC程序中。
  • #利用schtasks创建计划任务 schtasks /create /tn "qwer" /tr "notepad.exe" /sc onlogon 该条dos命令为创建 qwer这个任务名(/tr) 然后运行notepad....#powershell隐藏执行终端 powershell -windowstyle hidden...
  • 用C++代码执行bat脚本或者cmd命令时,如何避免cmd窗口一闪而过或者cmd窗口打开停留? 可使用函数WinExec完成功能,格式如下: WinExec("cmd /c 文件名.bat", SW_HIDE); 或者 WinExec("cmd /c cmd命令", SW_HIDE)...
  • Windows 窗口层次关系

    千次阅读 2014-05-14 11:08:32
    相信在Windows 下面编程的很多兄弟们都不是很清楚Windows窗口的层次关系是怎么样的,这个东西很久已经研究过一下,后来又忘记了,今天又一次遇到了这个问题,所以便整理一下。下面就说说Windows 中桌面(Desktop...
  • windows窗口命令——(copy/b)文件无缝拼接隐藏

    万次阅读 多人点赞 2018-11-02 12:33:26
    当你浏览到这里的时候,想必会有一些小秘密或者私人文件需要隐藏但是又逃不过别人的多层“扫描”,那么今天我做了一个小例子,可能大家都听说过,我这里想再细细说一下。 首先介绍一下这个命令:copy ...那么就可以...
  • import win32api,win32guidef main(): ct = win32api.GetConsoleTitle() hd = win32gui.FindWindow(0,ct) win32gui.ShowWindow(hd,0) import Tkinter root = Tkinter.Tk
  • 隐藏窗口

    千次阅读 2017-05-12 15:18:49
    最近在查找隐藏桌面窗口的方法,目前只查到用ShowWindow和SendMessage这两个方法。 ShowWindow: nCmdShow:指定窗口如何显示。如果发送应用程序的程序提供了STARTUPINFO结构,则应用程序第一次调用...
  • 方法一:在你的cpp文件中添加 #pragma comment( ...//这种方法无法灵活的显示或者隐藏窗口 方法二:适用于对本身隐藏窗口 #include<Windows.h> HWND hwnd=GetForegroundWindow();//获取你当前启动窗口的...
  • 修改Windows窗口标题

    万次阅读 2019-08-21 08:07:48
    通过C/C++语言调用windows APi函数修改正在运行的程序窗口标题
  • Windows窗口样式

    千次阅读 2009-01-19 10:39:00
    Windows常见窗口样式和控件风格 王佰营 徐丽红一、窗口样式WS_POPUP 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用)WS_CHILDWINDOW 子窗口(不能与WS_POPUP合用)WS_MINIMIZE 创建窗口拥有最小化按钮WS_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 115,345
精华内容 46,138
关键字:

windows的窗口可以隐藏吗