c#实现隐藏与显示任务栏的方法详解

1.导入System.Runtime.InteropServices命名空间。

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


代码如下:

[DllImport("user32.dll")]
public static extern int ShowWindow(int hwnd,int nCmdShow);

其中hwnd表示窗体的句柄,nCmdShow表示窗体的现实状态。

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


代码如下:

[DllImport("user32.dll")]
public static extern int FindWindow(string lpClassName,string lpWindowName);

实例如下,主要代码为(使用了2个btn控件):


代码如下:

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);

private void button1_Click(object sender, EventArgs e)
        {
            ShowWindow(FindWindow("Shell_TrayWnd",null),SW_HIDE);
            //YinYiNiao's Blog
        }

private void button2_Click(object sender, EventArgs e)
        {

ShowWindow(FindWindow("Shell_TrayWnd",null),SW_RESTORE);
        }

(0)

相关推荐

  • C#窗口实现单例模式的方法

    主要是应对这种需求:软件只允许启动一次. 将这个问题转化一下,可以这样描述:对于一个软件,在启动一个进程之后,不允许启动其它进程,如果第二次打开程序,就把已经启动的那个进程的窗口放到最前端显示. C# winfrom应用在启动之后会首先执行program.cs里的代码,所以需要在这里下手.启动后,检测是否有相同进程名的进程,如果有,就把那个进程的窗口提到前端,然后关闭自己. 用法:把你的program.cs改造成这个样子: static class Program { //windows api

  • C#实现任务栏通知窗口

    想必大部分网友都使用过QQ.MSN等聊天程序,它们的界面都相当华丽,尤其是当网友上线以及消息提示时会有一个浮动的窗体从屏幕的右下方缓慢升起,既美观又人性化.本文主要讲解用C#来实现任务栏通知窗口. 简介 QQ和MSN的任务栏通知窗口很人性化,它可以在不丢失主窗体焦点的前提下显示一个具备皮肤Skin的通知窗体,当它显示一段时间后会自动消失,所以用户根本不用干预它. 这样的通知窗体和一般的具备标题栏.系统图标和按钮的窗体没有太大的区别,窗体表面其实就是画上去的一张位图而已,而窗体的浮动则会复杂一点,

  • 解决C# 截取当前程序窗口指定位置截图的实现方法

    要想完成这个功用,首先要了解一下在C#中如何调用API(利用程序交口)函数.固然在.Net框架中已经降求了很多类库,400电话,这些类库的功效也非常强盛,但关于一些Windows顶层编程来道,仍是要通过调用这些API函数才可以实现.一切API皆在"Kernel"."User "和"GDI"三个库中得以运转:其中"Kernel",他的库名为 "KERNEL32.DLL", 他重要用于发生取操做体系之间的联系关

  • C#隐式运行CMD命令(隐藏命令窗口)

    本文实现了C#隐式运行CMD命令的功能.下图是实例程序的主画面.在命令文本框输入DOS命令,点击"Run"按钮,在下面的文本框中输出运行结果. 下面是程序的完整代码.本程序没有使用p.StandardOutput.ReadtoEnd()和p.StandardOutput.ReadLine()方法来获得输出,因为这些方法执行后画面容易卡死.而是通过调用异步方法BeginOutputReadLine来获取输出,并在事件p.OutputDataReceived的事件处理方法中来处理结果. u

  • C#调用dos窗口获取相关信息的方法

    本文实例讲述了C#调用dos窗口获取相关信息的方法.分享给大家供大家参考.具体实现方法如下: /// <summary> /// 调用dos窗口获取相关信息 /// </summary> /// <param name="cmd">如:netstat-ano或者ipconfig</param> /// <returns></returns> static string GetCode(string cmd) { P

  • 用 C# 编写一个停放在任务栏上的图标程序

    用 C# 编写一个停放在任务栏上的图标程序  作者: 蔡世友 类别: C#/VB 日期: 2002-1-30 10:21:46   01-12-6 上午 10:53:11 -------------------------------------------------------------------------------- 引 言  C#语言是微软公司针对.Net平台才推出来的一门新语言,作为.Net平台的第一语言,它几乎集中了所有关于软件开发和软件工程研究的最新成果.其是当前第一个完全

  • C#实现将程序锁定到Win7任务栏的方法

    本文实例讲述了C#实现将程序锁定到Win7任务栏的方法.分享给大家供大家参考.具体实现方法如下: Win7Taskbar类: using System; using System.Collections.Generic; using System.Text; using Shell32; using System.IO; namespace TestWin7Taskbar { class Win7Taskbar { public static bool LockApp(bool isLock,

  • C#设置窗体最大化且不遮挡任务栏的方法

    本文实例讲述了C#设置窗体最大化且不遮挡任务栏的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: /// <summary> /// 设置窗体最大化(不遮挡任务栏) /// </summary> /// <param name="frm"></param> public virtual void SetFormMax(Form frm) {     frm.Top = 0;     frm.Left = 0;    

  • C# WinForm中禁止改变窗口大小的方法

    本文介绍在使用C#开发WinForm窗体程序时,如何设置窗体的大小不能被改变. 我们在开发一个窗体(WinForm)程序时,所有的控件都部署在程序界面上了,如果这时来把窗体的大小调整一下,那界面就难看了.怎么设置窗体大小不能被修改呢? 在Form类下面有一个FormBorderStyle的字段,我们可以通过设置它的值来让窗体不能被拉大拉小.FormBorderStyle的值设置为FormBorderStyle.FixedSingle或Fixed3D时,窗体大小是不能被改变的. 当然,还有一种情况

  • C#获取任务栏显示进程的方法

    本文实例讲述了C#获取任务栏显示进程的方法.分享给大家供大家参考.具体实现方法如下: private static void getWindowsInfo() { try { Process[] MyProcesses = Process.GetProcesses(); string[] Minfo = new string[6]; foreach (Process MyProcess in MyProcesses) { if (MyProcess.MainWindowTitle.Length

  • 解决C#获取鼠标相对当前窗口坐标的实现方法

    在我们编写客户端应用程序时,经常要用到鼠标当前的位置.在C#winform中,可以用Control.MousePosition获得当前鼠标的坐标,使用PointToClient计算鼠标相对于某个控件的坐标,如下Point screenPoint = Control.MousePosition;//鼠标相对于屏幕左上角的坐标Point formPoint = this.PointToClient(Control.MousePosition);//鼠标相对于窗体左上角的坐标Point context

  • C# Winform中实现主窗口打开登录窗口关闭的方法

    在使用C#进行Winform编程时,我们经常需要使用一个登录框来进行登录,一旦输入的用户名密码登录成功,这时登录窗口应该关闭,而且同时打开主程序窗口.该如何来实现呢? 乍一想,很简单啊,打开主窗口就用主窗口的Show()方法,而关闭登录窗口就用登录窗口的Close()方法即可.即代码如下: Program.cs中代码: 复制代码 代码如下: Application.Run(new FormLogin()); 登录窗口(FormLogin)代码: 复制代码 代码如下: private void b

  • C#实现简单的Login窗口实例

    本文实例讲述了C#实现简单的Login窗口.分享给大家供大家参考.具体实现方法如下: C# 制作登录窗体,登录成功之后正确的做法是关闭(close)登录窗体,而不是隐藏窗体(hide) FrmLogin窗体: public Form1() { InitializeComponent(); //登录按钮 button1.Click += delegate { this.DialogResult = DialogResult.OK; this.Close(); }; //取消登录按钮 button2

随机推荐