精华内容
下载资源
问答
  • 由于需求,我需要获取Windows底部任务栏 自动隐藏任务栏或者取消自动隐藏任务栏时的消息。 在当时我就在想想要在... 偶然间看到一篇文章用到SHAppBarMessage()可以真正实现任务栏连带着开始菜单一起隐藏 我就觉...

        由于需求,我需要获取Windows底部任务栏 自动隐藏任务栏或者取消自动隐藏任务栏时的消息。 可在当时我就在想想要在自己程序中获取系统的消息那肯定很麻烦,于是我就上网查了一遍不过这方面的介绍也似乎不是很多。不过也有类似的比如用全局钩子、用API拦截技术等,但也只是类似并不是我想要的。 偶然间看到一篇文章用到SHAppBarMessage()可以真正实现任务栏连带着开始菜单一起隐藏 我就觉得我可以通过API拦截把系统的消息拦截下来。

    一、 自动隐藏任务栏和取消自动隐藏任务栏(隐藏于自动隐藏不同)

    需要利用一API函数:SHAppBarMessage
    UINT_PTR SHAppBarMessage(      
        DWORD dwMessage,
        PAPPBARDATA pData
    );
    
    参数说明:
    dwMessage   可以为下列参数
    ABM_ACTIVATE                    激活一个 appbar 
    ABM_GETAUTOHIDEBAR              检索屏幕边缘的 appbar
    ABM_GETSTATE                    检索最顶层的Microsoft Windows任务栏
    ABM_GETTASKBARPOS               检索任务栏
    ABM_NEW                         注册一个新的appbar,该系统并发送一消息给appbar 
    ABM_QUERYPOS                    appbar 大小和屏幕位置 
    ABM_REMOVE                      取消注册一个 appbar,并从系统内部列表移出
    ABM_SETAUTOHIDEBAR              在屏幕边缘注册或取消注册appbar
    ABM_SETPOS                      设置appbar 的大小和屏幕位置 
    ABM_SETSTATE                    设置appbar为最顶层
    ABM_WINDOWPOSCHANGED            当appbar得状态发送改变时向系统发送消息
    
    pData 
    一个APPBARDATA结构体

    这只是函数介绍具体怎么用还的网上百度。

    二、 当我真的把API函数SHAppBarMessage()拦截下来的时候我才发现,只有当我在程序中调用SHAppBarMessage()函数时 才会被拦截,而手动去隐藏任务栏时 系统调用的SHAppBarMessage() 却不会拦截下来,这时有两种可能:

    1、 系统隐藏任务栏时根本不是调用SHAppBarMessage()

    2、 想要拦截API函数只有当自己程序调用时才会被自己写的拦截函数拦截 而系统调用的API不会被拦截

    这时候我就换了一个API函数MessageBoxW() 看看能不能被拦截  因为你删除文件时系统会弹出一个提示框 而这个提示框就是调用MessageBoxW(),结果真是意外 当我删除文件弹出提示框时 API没有拦截成功, 这时候我得出一个结论: API拦截只能拦截程序中自己调用的函数 对于系统函数不能被拦截。

    三、 在无助的时候,在CSDN谋篇文章提到过WM_SETTINGCHANGE 可以看 http://bbs.csdn.net/topics/391888487,没带多大的希望就去试了下,结果还真出乎意料找了这么久都找不到的方法,程序本身就自带了, 这也多亏了那位大神。

    四、 写这篇文章除了记录自己的经历,还有就是感谢网上那些随便一笔就能让我少走很多弯路的大神,同时也是让更多人了解。

    展开全文
  • QT之隐藏任务栏图标

    万次阅读 多人点赞 2016-12-14 20:54:28
    QT之隐藏任务栏图标QT之隐藏任务栏图标 应用背景 效果图 上代码 结尾应用背景 我们在某些场景下,我们希望在任务栏上出现我们的窗口的图标,类似QQ主面板,你会发现QQ主面板其实是没有任务栏图标的,那么我们该...

    QT之隐藏任务栏图标

    应用背景

    我们在某些场景下,我们不希望在任务栏上出现我们的窗口的图标,类似QQ主面板,你会发现QQ主面板其实是没有任务栏图标的,那么我们该怎么做?也能让我们的任务栏不显示我们不想要的图标呢!在这之前我们需要了解下QT里的parent参数。
    我们在写界面的时候,几乎每个构造函数里都会有一个parent参数。这个参数通常是QObject* 或者是 QWidget* 类型的。初始值0,我们基本上也没理会,但是你有没有想过,这个parent有什么作用呢?

    “对话框”,对话框一般是不作为顶层容器出现的,因此在任务栏上是没有对话框的位置的,指定对话框的parent属性,任务栏就不会出现图标。如果你不指定,这个对话框就成为顶层容器了,任务栏会出现图标。利用这个特性,就可以实现我们的窗体是否需要在任务栏上出现。

    另外很重要的就是,parent参数指明了父窗口,当父窗口delete时,Qt可以保证所有子窗口都会被正确的delete掉,具体,可以参考我前篇文章QT之内存泄漏管理里面有谈到,如何通过设置父窗口,保证我们的内存安全。

    效果图

    这里大家可以看到我启的应用在任务栏上出现了。
    任务栏

    大家注意,我右边,以代表我是真的启了应用,但是在我的任务栏上是没有出现图标的。
    任务栏NO

    上代码

    //其实很简单,只要对窗口对象,设置一个父窗口就行。
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        QApplication::setQuitOnLastWindowClosed(false);
        QWidget* parent = new QWidget;
        Demo *pDemo = new Demo(parent);
        pDemo->show();
        pDemo->activateWindow();
        int ret = a.exec();
        delete parent;
        return ret;
    }
    //还有另外一种方法就是,我们不设置parent属性,使用QT标志位。
    //setWindowFlags(Qt::Tool);这样任务栏也不会出现窗口图标

    注意:我们在使用parent属性或者Qt::Tool时,最小化的时候,会出现左下角出现一块窗口区域情况,这种情况,你只要最小化的时候使用hide()就不会出现了。

    如果你想使用我此篇Demo做测试,可到QT之样式styleSheet去下载源码。

    结尾

    只为记录,只为分享! 愿所写能对你有所帮助。Good Good Study, Day Day Up!
    如果你觉得所写的对你有帮助,默默点个赞哈,你的赞就是我最大的支持,嘿嘿~不要说我骗赞哦,(^__^)

    展开全文
  • 一、窗体最大化时要屏蔽住任务栏: ①选中窗体设置属性FormBorderStyle为none,运行时没有标题栏能最大化最小化能关闭 一般不用 ②FormBorderStyle为FixedToolWindow或SizableToolWindow 此时程序运行时可以...

    一、窗体最大化时要屏蔽住任务栏:

    ①选中窗体设置属性FormBorderStyle为none,运行时没有标题栏不能最大化最小化不能关闭 一般不用

    ②FormBorderStyle为FixedToolWindow或SizableToolWindow 此时程序运行时可以最大最小化 关闭 最大化时能

    全屏,覆盖任务栏

    ③设置窗体边框的FormBorderStyle属性设置。属性值可以通过枚举类型FormBorderStyle获取,它的取值和意义如下表所示。

    属性 意义
    FormBorderStyle.None 0 无边框
    FormBorderStyle.FixedSingle 1 固定的单行边框
    FormBorderStyle.Fixed3D 2 固定的三维样式边框
    FormBorderStyle.FixedDialog 3 固定的对话框样式的粗边框
    FormBorderStyle.Sizable 4 可调整大小的边框
    FormBorderStyle.FixedToolWindow 5 不可调整大小的工具窗口边框

    FormBorderStyle.SizableToolWindow

    6 可调整大小的工具窗口边框

     ④可以通过WindowsState设置最初窗体运行时最大最小框的状态,StartPostion:CenterScreen设置窗体刚开始时处于屏幕中央。

    二、软件全屏的情况下(此时不显示任务栏)打开C#编写的外部可执行程序.exe,会显示任务栏,此时外部执行程序位于全屏上方显示任务栏感觉不舒服,嗯要干掉,首先我百度了一个解决方案就是通过代码引用操作系统user32.dll把任务栏隐藏,这样调出就不会显示任务栏,但是 关掉程序之后如果不打开任务栏那想用任务栏时找不到。。。。。。。嗯。。。还是要在程序关闭时显示任务栏。。。但是这样的话。。。任务栏会在全屏软件上显示出。。。点一下全屏软件的任何一个地方。。。让全屏软件获取焦点后才能不显示任务栏。。。。。视觉不舒服。。。换。。。

    代码如下:

    首先引用命名控件System.Runtime.InteropServices。

    代码如下:

    //主方法内   
    private const int SW_HIDE = 0;  //隐藏任务栏
    private const int SW_RESTORE = 9;//显示任务栏
    
    [DllImport("user32.dll")]
    public static extern int ShowWindow(int hwnd,int nCmdShow);
    [DllImport("user32.dll")]
    public static extern int FindWindow(string lpClassName,string lpWindowName);
    
    //两个btn事件下
    private void button1_Click(object sender, EventArgs e)
    {
      ShowWindow(FindWindow("Shell_TrayWnd",null),SW_HIDE);
    }
    private void button2_Click(object sender, EventArgs e
    {
    ShowWindow(FindWindow("Shell_TrayWnd",null),SW_RESTORE);
    }

    解释:

    ①:API函数ShowWindow()能够控制人和窗体的现实状态,其声明格式如下:

    导入库  [DllImport("user32.dll", EntryPoint = "ShowWindow", SetLastError = true)]

    函数原型 static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);

    参数说明 IntPtr hWnd, hWnd指窗口句柄;uint nCmdShow,nCmdShow指定窗口如何显示的参数

    返回值 布尔值

    ②:API函数FindWindow()可用于返回任务栏所在窗体类“Shell_TrayWnd”句柄,其声明格式如下:

    导入库 [DllImport("user32.dll")]

    函数原型 public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

    参数说明 lpClassName String,指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类

    lpWindowName String,指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收 任何窗口标题

    返回值 :句柄

    如果函数执行成功,则返回值是拥有指定窗口类名或窗口名的窗口的句柄。

    如果函数执行失败,则返回值为 NULL 。可以通过调用GetLastError函数获得更加详细的错误信息。

     

    三、最漂亮的解决方法:

    因为我用的是winform,调用的是C#语言写的,在winform主窗体下设置属性TopMost=true就可以在调用时不显示任务栏了(前提是你之前的程序覆盖任务栏之上)

    如果将窗体显示为最顶层窗体,则为 true;否则为 false。 默认值为 false

    最顶层窗体是重叠的所有其他 (非最顶层) 窗体,即使它并不是活动或前景色形式。 最顶层窗体始终显示在桌面上的窗口在 z顺序的最高点。 此属性可用于创建应用程序,如查找和替换工具窗口中始终显示一个窗体。

     

    四、C#程序设置自动隐藏任务栏问题 我找了找 发现不少  不过还没试 嗯mmmm先这样吧

    https://blog.csdn.net/zxzzt119/article/details/73294674

    展开全文
  • Delphi隐藏任务栏

    千次阅读 2007-06-05 09:12:00
    Delphi中如何控制Windows任务栏的显示 吴淑华为了更有效地利用显示器的空间,多数程序员都有过这样的经验,即通过Windows任务栏属性对话框,在“任务栏选项”页中将任务栏设置为“自动隐藏”,并且为了在需要

    Delphi中如何控制Windows任务栏的显示

    吴淑华

    为了更有效地利用显示器的空间,多数程序员都有过这样的经验,即通过Windows任务栏属性对话框,在“任务栏选项”页中将任务栏设置为“自动隐藏”,并且为了在需要任务栏时操作方便,选择任务栏“总在最前”。完成上述设置后,当程序员编辑文档或编写代码时,任务栏会自动隐藏,增加了显示器的可利用空间;而当程序员需要操作任务栏时,只需将鼠标移动到任务栏所在位置的显示器边缘上,这时任务栏就会自动出现。但如果任务栏没有设置成“总在最前”,此时任务栏就不会自动弹出。
    要控制Windows任务栏的隐藏和显示,可以通过调用一组API函数来实现。这组API函数分别是:

    (1) FindWindow函数
    该函数通过指定的类名和窗口名来检索指定的高层窗口句柄,如果检索成功,则返回窗口句柄,否则返回空;另外,需注意改函数不能用于查找子窗口。函数如下:
    HWND FindWindow(LPCTSTR lpClassName, //类名指针
    LPCTSTR lpWindowName //窗口名指针
    );
    (2) ShowWindow函数
    该函数用于设置指定窗口的显示状态。函数如下:
    BOOL ShowWindow(HWND hWnd, //指定窗口的句柄
    Int nCmdShow //指定窗口的显示状态,可以设置为SW_HIDE,SW_SHOW等
    );
    (3) SetWindowPos函数
    该函数用于设置指定窗口的大小、显示位置和显示顺序等信息。函数如下:
    BOOL SetWindowPos(
    HWND hWnd, // 指定窗口的句柄
    HWND hWndInsertAfter, // 指定窗口的显示顺序,可以设为如下一组值:HWND_BOTTOM、HWND_NOTOPMOST、HWND_TOP、HWND_TOPMOST
    int X, // 指定窗口的横坐标位置
    int Y, // 指定窗口的纵坐标位置
    int cx, // 指定窗口的宽度
    int cy, // 指定窗口的长度
    UINT uFlags // 指定窗口的尺寸和位置标记,可以取一组值或这些值的组合
    );
    下面本文以一个具体的例子,详细介绍一下在Delphi 5.0中实现Windows任务栏显示和隐藏的步骤。
    1. 创建一个应用程序,在主窗体上增加二个TButton组件和一个TcheckBox组件。设置其中一个TButton组件的Caption属性为“隐藏Windows的任务栏”,设置另一个TButton组件的Caption属性为“显示Windows的任务栏”,设置TcheckBox组件的Caption属性为“总在最前”。
    2. 编辑TForm1.Button1Click(Sender: TObject)
    隐藏Windows的任务栏,代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    wndHandle: THandle; //用于存储指定窗口的句柄
    wndClass: array[0..50] of Char; //用于存储类名
    begin
    strPCopy(@wndClass[0], 'Shell_TrayWnd'); //获取任务栏类名
    wndHandle := FindWindow(@wndClass[0],nil); //获取任务栏窗口的句柄
    ShowWindow(wndHandle, SW_Hide); //隐藏Windows任务栏
    button2.Enabled := True; //设置“显示Windows任务栏”按钮变为可操作状态
    button1.Enabled := False; //设置“隐藏Windows任务栏”按钮变为不可操作状态
    end;
    3. 编辑TForm1.Button2Click(Sender: TObject)
    显示Windows的任务栏,并判断“总在最前”TcheckBox组件是否选中,如果选中,则任务栏总是显示在最前方,否则任务栏显示在最底层。代码如下:
    procedure TForm1.Button2Click(Sender: TObject);
    var
    wndHandle: THandle;
    wndClass: array[0..50] of Char;
    begin
    strPCopy(@wndClass[0], 'Shell_TrayWnd');
    wndHandle := FindWindow(@wndClass[0],nil);
    ShowWindow(wndHandle, SW_SHOW); //显示Windows的任务栏
    //判断“总在最前”复选框是否选中
    if CheckBox1.checked then //如果选中,则设置任务栏为最顶层窗口
    SetWindowPos(wndHandle, HWND_TOPMOST, r.top, r.left, r.bottom, r.right, SWP_NOMOVE)
    Else //否则,设置任务栏为最底层窗口
    SetWindowPos(wndHandle, HWND_BOTTOM, r.top, r.left, r.bottom, r.right, SWP_NOMOVE);
    //设置按钮的操作状态
    button2.Enabled := False;
    button1.Enabled := True;
    end;
    4. 打开Windows任务栏属性对话框,不选中“自动隐藏”和“总在最前”两个复选框,并确定后关闭该对话框。运行上述创建的应用程序,即可控制Windows任务栏的显示和隐藏
    展开全文
  • MFC程序隐藏任务栏图标的三种方法

    千次阅读 2013-05-30 15:41:12
    MFC程序隐藏任务栏图标的三种方法 原文地址《MFC程序隐藏任务栏图标的三种方法 》  在VC编程中,有时候我们需要将我们的程序在任务栏上的显示隐藏起来,我试过几种方法,下面我介绍一下我知道的三种方法。...
  • mobile系统下,隐藏任务栏小程序

    千次阅读 2011-07-18 19:11:51
    说明:此程序是为了隐藏任务栏而开发的。此程序是在Windows Mobile 6 Professional SDK下开发的控制台程序。运行此程序,就会创建一个新的进程来运行驱动调试工具,此时任务栏开始隐藏,直到关闭驱动调试工具,任务...
  • 但是设置了FormBorderStyle为None后,我们点击任务栏应用程序图标并能实现程序的最小化(或还原窗口)的操作(使用系统自带样式是可以实现的)。下面我将展示如何在FormBorderStyle为None的情况下,实现应用程序...
  • 文章目录按步骤 按 Windows 10在某些电脑上会自动变成平板模式,这样的话任务栏任务栏上的图标可能就会自动消失了。 解决办法也很简单,到设置里弃用平板模式就行。 步骤 ...
  • 结果在winform全屏化的时候,遮挡了下面的任务栏;这样的话体验性就不好了,这几天找了n多方法,一搜某度,发现都是。。。2013年左右的资料。。。简直,唔,还有。。。都是xp系统的测试。。。真是有意思。虽然说我
  • QDialog隐藏Qt程序的任务栏

    千次阅读 2015-02-03 13:33:55
    最近在搞Qt的开发中,遇到一个问题,当你要搞一个单独漂浮在屏幕上的Widget时,你需要隐藏它的任务栏条。在QWidget的WindowFlag中,并未有直接的选项。 但是办法是人想出来的,看到QWidget的enum Qt::WindowType ...
  • android studio卡在任务栏能最大化

    千次阅读 2016-08-30 17:54:42
    刚刚做项目的时候,遇到一个问题,打开Android studio后一直隐藏任务栏中,不管怎么点击,或者用alt + tab切换都切换回来,甚至在任务管理器中杀掉,重启电脑都能解决,一直无法实现窗口最大化。 于是看到了...
  • 如何隐藏任务栏图标小结(zz)

    千次阅读 2006-12-04 13:36:00
    如何隐藏任务栏图标小结如原始任务栏图标如下图:A:彻底隐藏所有上图中已运行程序的小图标?【1】打开运行对话框: 输入gpedit.msc命令,如下: 然后确定;【2】弹出组策略窗口,依次选择“用户配置”--->>“管理...
  • vc启动隐藏界面、任务栏图标

    千次阅读 2013-04-22 21:34:59
    转载者   VC 窗口启动时隐藏  最近经常见论坛上有人问,程序在启动时如何隐藏。以下是我总结的一些方法,欢迎大家讨论...程序仍使用ShowWindow()将窗体显示出来. 1.基于对话框的程序  我在论坛上看到有人说在
  • 关于隐藏Windows任务栏中的应用程序按钮的几种方法的介绍 (转) 摘 要:本文介绍了笔者在实践中得到的几种隐藏任务栏中的应用程序按钮的方法,并逐一对其中的每一种方法进行详细的分析,指出每一种方法的优缺点。...
  • 在网上看了许多人问怎么样实现在WINDOWS托盘程序中,当点击最小化时将窗体隐藏任务栏中,而点击托盘栏中的程序托盘时又会显示出窗体的正常状态的功能。许多人的思路是找到最小化时触发的事件或者是程序最小化时...
  • 而且 NativeWindow一旦初始化 就决定NativeWindowInitOptions的属性不可更改。   第二:可以新建一个NativeWindow,对于这个新的NativeWindow可以设置它的    NativeWindowInitOptions.type = NativeWindowType....
  • 修改任务栏程序图标

    万次阅读 热门讨论 2018-08-02 13:52:02
    某些exe程序,在电脑运行时,会显示自己的图标,但是有时太方便让其显示(至于原因 你懂得) 以微信为例,教你替换这种程序的图标 首先 我们要准备一个操作exe文件的工具eXeScope,eXeScope工具包下载 ...
  • MFC 让对话框显示在任务栏和桌面

    千次阅读 2017-03-29 16:49:50
    ModifyStyleEx(WS_EX_APPWINDOW,WS_EX...//任务栏隐藏 ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);//从任务栏中去掉.  SetWindowPos(&wndTop,0,0,0,0,NULL); 或者   ModifyStyleEx(WS_EX_APPWI
  • 本文主要叙述如何使用C#让窗体最小化至任务栏,同时在系统托盘区的图标点击左键能显示窗体,右键能关联控件显示3个常用功能:显示窗体、隐藏窗体和退出功能.主要涉及到的控件是notifyIcon和contextMenuStrip,希望作者以...
  • 制作一个任务栏及任务列表中显示的幽灵程序网上已经有许多地方提到了如何将在任务栏隐藏应用程序,使用的方法都是将Application的属性变为WS_EX_TOOLWINDOW。即在WinMain函数中加入如下代码: DWORD dwExStyle = ...
  • 怎样清除任务栏中过去的项目?

    千次阅读 2009-03-12 13:38:00
    任务栏属性中有隐藏不活动的图标,自定义时下边有许多过去的项目,其实这都是以前删除过的项目,以后也想再用它们,所以就想再保留它们,只保留当前项目就可以了。巧妙清除Windows XP任务栏隐藏图标记录 在...
  • Windows10 任务栏网络图标消失不见的解决办法

    万次阅读 多人点赞 2018-12-27 23:06:19
    前些天,重新装了系统,在装软件的时候需求重启,重启后发现任务栏上的网络图标不见了,然后网络也连上,进行诊断显示为错误1068:依赖服务或组无法启动,百度了网上的很多方法,也没解决,重装了很多次系统还是会...
  • Win10用注册表开启任务栏透明

    千次阅读 2019-09-28 17:56:02
    在Win10中微软提供了让任务栏变透明的设置选项,不过它像Win7中的Aero Glass那样可以调节透明度。但在Windows10中微软还“隐藏”了一个小技巧,能够让Win10任务栏变得更透明。如果你有这样的需求参考下面的步骤...
  • C# 实现任务栏图标程序

    千次阅读 2012-07-26 10:30:37
    这是一个.Net平台上用C# 写的可以停放在任务栏上的图标程序,类似于SQL管理器、防病毒软件图标及OICQ图标等。  一、图标程序基本概念 我们这里所指的图标程序是类似于在Windows中经常接触的停放在任务栏上,...
  • 2、任务栏放弃了实时运行的概念,任务栏中开始变得像桌面,你可以把常用程序的图标放到任务栏上,当你需要使用这个程序的时候需要回到桌面去点击快捷方式,直接在任务栏上点击就可以,当前正在运行的程序会比当前...
  • [原创]使窗口出现在任务栏

    千次阅读 2005-11-01 13:04:00
    利用系统函数Shell_NotifyIcon可以将一个图标显示在任务栏的通告区中。2、主界面的隐藏:在SDK下是通过修改入口函数WinMain中的API函数CreatWindow的参数来实现的,在MFC下已经对其进行了封装,使我们无法直接对...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,169
精华内容 16,867
关键字:

任务栏可不可以隐藏