`
zheyiw
  • 浏览: 1017424 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

隐藏状态栏,保持最前端

    博客分类:
  • C#
 
阅读更多


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace LockWin
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            FormBorderStyle = FormBorderStyle.None;
            WindowState = FormWindowState.Maximized;

            this.BringToFront();
            this.TopMost = true;

            Thread t1 = new Thread(new ThreadStart(TestMethod));
            t1.Start();

            this.FormClosing += Form1_FormClosing;
            this.FormClosed += Form1_FormClosed;

            ClsWin32.HideTask(true);
        }

        void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            ClsWin32.HideTask(false);
        }

        void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;
        }

        public delegate void MyInvoke();

        private void TestMethod()
        {
            Thread.Sleep(1000);

            MyInvoke mi = new MyInvoke(MyBringToFront);
            BeginInvoke(mi);
        }

        public void MyBringToFront()
        {
            this.BringToFront();
            this.TopMost = true;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ClsWin32.HideTask(false);
        }
    }


    class ClsWin32
    {
        [DllImport("user32.dll")]
        public static extern bool GetCursorPos(ref Point lpPoint);

        [DllImport("user32.dll", EntryPoint = "FindWindowEx", SetLastError = true)]
        public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);

        [DllImport("user32.dll", EntryPoint = "ShowWindow", SetLastError = true)]
        public static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);

        public static Point GetCursorPos()
        {
            Point point = new Point();
            GetCursorPos(ref point);
            return point;
        }

        public static void HideTask(bool isHide)
        {
            try
            {
                IntPtr trayHwnd = FindWindowEx(IntPtr.Zero, IntPtr.Zero, "Shell_TrayWnd", null);
                IntPtr hStar = FindWindowEx(IntPtr.Zero, IntPtr.Zero, "Button", null);

                if (isHide)
                {
                    ShowWindow(trayHwnd, 0);
                    ShowWindow(hStar, 0);
                }
                else
                {
                    ShowWindow(trayHwnd, 1);
                    ShowWindow(hStar, 1);
                }
            }
            catch { }
        }
    }
}



分享到:
评论

相关推荐

    动态隐藏和显示工具栏

    3. **Angular, React, Vue等前端框架**:这些现代框架提供了数据绑定和状态管理的功能,可以方便地实现工具栏的显示逻辑。例如,在Angular中,可以使用`*ngIf`指令,根据变量的状态决定工具栏是否渲染;在React中,...

    随着页面鼠标的滑动页眉页脚导航栏的自动隐藏与显示

    在网页设计中,提供良好的用户体验至关重要,而"随着页面鼠标的滑动页眉页脚导航栏的自动隐藏与显示"正是提升用户体验的一种方法。这种设计技术常见于移动端网站,能够优化空间利用,使得用户在浏览内容时不会被固定...

    jquer滚动隐藏显示顶部导航栏

    "jQuery滚动隐藏显示顶部导航栏"是一种常见的交互设计技术,主要用于优化用户体验,特别是当页面内容较长时。该技术使得导航栏在页面滚动时具有动态效果,既保持了页面的清爽,又确保了导航的易用性。 标题所提到的...

    基于jquery和Bootstrap3的隐藏侧边栏菜单

    基于jQuery和Bootstrap3的隐藏侧边栏菜单是一种优化用户体验的方式,它能有效地利用有限的屏幕空间,同时保持导航的清晰与易用。本篇文章将深入探讨这个特效的实现原理和技术细节。 首先,Bootstrap3是一个广泛使用...

    windows怎么将任务栏锁定在其他窗口的前端-.docx

    如果任务栏没有被隐藏或者移动,而是始终保持在屏幕底部并且始终显示,那就说明设置成功了。在未锁定任务栏的情况下,尝试拖动任务栏边缘会出现虚线,表示可以移动;而锁定后,虚线消失,任务栏无法被移动,这表明...

    超酷Bootstrap 3 隐藏滑动侧边栏菜单

    为了保证在小屏幕上正确显示,可以使用Bootstrap的`visible-*` 和 `hidden-*` 类来控制不同屏幕尺寸下的显示隐藏状态。 最后,为了使侧边栏菜单更具吸引力,我们还可以添加自定义的CSS样式,比如更改字体、颜色、...

    前端权限控制与管理简单示例

    7. **状态管理**:使用如Redux或Vuex等状态管理库可以帮助更好地组织和管理权限相关的状态,使得在整个应用中权限控制更加统一和便捷。 8. **授权逻辑封装**:为了保持代码的整洁和可维护性,可以将权限检查的逻辑...

    一个小型的前端界面库

    1. **组件系统**:组件是前端库的核心,它们是可重用的代码块,如按钮、表单、导航栏等。这些组件遵循一定的设计模式,如React中的JSX或Vue.js的模板语法,使开发者能够构建复杂的用户界面。 2. **样式管理**:库...

    6种侧边显示隐藏菜单

    例如,使用React,可以创建一个可复用的侧边菜单组件,包含状态管理(显示/隐藏)、过渡动画和事件监听等功能。Vue和Angular也有相应的内置指令和库来辅助实现动态效果。 总之,侧边显示的隐藏菜单在提升网页和应用...

    搭建适合前端开发的小程序架构

    例如,避免无谓的渲染,合理使用`wx:if`和`hidden`来控制元素的显示和隐藏,利用`wx:if`进行条件渲染可以减少不必要的DOM操作。此外,对图片资源进行压缩,合理设置页面懒加载也是提高性能的有效手段。 7. **测试与...

    底部菜单栏Demo

    为了使界面更加简洁,开发者可能还考虑了如何隐藏和显示底部菜单栏,以及在不同设备尺寸和方向上的适配策略。在实际应用中,还需要考虑如何处理`Fragment`的状态保存和恢复,尤其是在设备配置改变(如屏幕旋转)时。...

    前端项目-jquery.cookieBar.zip

    jquery.cookieBar利用jQuery的cookie插件(如jquery.cookie.js)来创建、读取和删除cookie,以实现通知栏的显示与隐藏状态管理。 2. **jQuery插件开发**:jquery.cookieBar是基于jQuery的插件模式开发的,遵循一定...

    网页前端高级编程-实验报告-网站综合制作.doc

    此外,还可以利用JavaScript实现更复杂的交互,如动态显示隐藏的内容或切换菜单。 三、轮播图实现 轮播图是网页中常见的一种动态展示图片的组件。在本实验中,我们使用JavaScript实现。首先,通过`querySelectorAll...

    前端项目-headroom.zip

    在网页设计中,固定头部(通常是指网页顶部的导航栏)在用户滚动页面时始终保持可见,为用户提供了一种方便的导航方式。然而,当头部过大时,可能会遮挡页面内容,特别是在小屏幕设备上。Headroom.js的出现就是为了...

    jQuery表格行展开隐藏代码.zip

    3. **状态维护**:为了保持展开/隐藏的状态,可以给表格行添加一个自定义的CSS类,例如`expanded`。在点击事件处理中,使用`.toggleClass()`方法根据当前类的存在与否来添加或移除这个类,这样可以方便地通过CSS控制...

    前端项目-knockout-postbox.zip

    - 状态管理,如全局的加载指示器根据各组件的请求状态来显示或隐藏。 总结,通过结合使用Knockout和Postbox,开发者可以在保持组件解耦的同时,实现高效、灵活的组件通信。这有助于提高代码的可维护性和可扩展性,...

    录播图效果,360网站音乐导航栏,手风琴效果等实现源码

    接着,"手风琴效果"是一种常见的UI设计,它允许内容以折叠的方式显示和隐藏,常用于节省空间并保持页面整洁。手风琴效果可以通过CSS的display属性和JavaScript的事件监听来实现。当用户点击一个标题,对应的详细内容...

    winform界面特效设计源码.doc

    - 检查框状态栏:在状态栏中添加可选的复选框,用于切换某些设置或状态。 4. **状态栏设计**: - 带进度条的状态栏:在状态栏中显示任务进度,让用户了解操作进度。 - 状态栏图标:通过添加图标,可以直观地传达...

    前端项目-jquery-bootgrid.zip

    - **响应式设计**:Bootgrid 充分利用 Bootstrap 的栅格系统,使得表格在不同设备和屏幕尺寸下都能保持良好的显示效果。 - **排序功能**:用户可以通过点击列头对表格数据进行升序或降序排序。 - **搜索功能**:...

    tab切换栏.rar

    3. **CSS样式**:为了实现视觉上的Tab效果,CSS用于定义Tab标签的样式、选中状态、鼠标悬停效果,以及内容区域的隐藏和显示。使用CSS伪类如`:hover`, `:active`, `:focus`可以处理Tab的交互状态。 4. **JavaScript/...

Global site tag (gtag.js) - Google Analytics