首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

~要死人了!

2012-02-22 
高手救命~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~要死人了!!!!!!!!!怎么隐藏Winform程序窗口不管是任务栏状态

高手救命~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~要死人了!!!!!!!!!
怎么隐藏Winform程序窗口   不管是任务栏   状态栏都不显示。用热键呼出。
怎么实现?????????????????

[解决办法]
把透明度设成100 或隐藏掉都可以
[解决办法]
任务栏 也不要? 用个托盘图标好了
[解决办法]
最小化到托盘,用NotifyIcon组件~~
[解决办法]
UP
[解决办法]
不显示好说,先不在任务栏显示然后最小化就可以了.
但是 "呼出 "不好说...
[解决办法]
首先不创建Form,注册一个Hook。。。然后呼叫以后创建Form
[解决办法]
设置Visible=False
[解决办法]
设置Form的属性 this.ShowInTaskbar = false; 并在Page_Load加入this.Hide();就可以实现启动窗口后自动隐藏了。

可用以下代码注册热键,并处理热键激活时的事件:


C#系统热键类
using System;
using System.Runtime.InteropServices;

namespace SystemHotKey
{
public delegate void HotkeyEventHandler(int HotKeyID);

public class Hotkey : System.Windows.Forms.IMessageFilter
{
System.Collections.Hashtable keyIDs = new System.Collections.Hashtable();
IntPtr hWnd;

public event HotkeyEventHandler OnHotkey;

public enum KeyFlags
{
MOD_ALT = 0x1,
MOD_CONTROL = 0x2,
MOD_SHIFT = 0x4,
MOD_WIN = 0x8
}
[DllImport( "user32.dll ")]
public static extern UInt32 RegisterHotKey(IntPtr hWnd, UInt32 id, UInt32 fsModifiers, UInt32 vk);

[DllImport( "user32.dll ")]
public static extern UInt32 UnregisterHotKey(IntPtr hWnd, UInt32 id);

[DllImport( "kernel32.dll ")]
public static extern UInt32 GlobalAddAtom(String lpString);

[DllImport( "kernel32.dll ")]
public static extern UInt32 GlobalDeleteAtom(UInt32 nAtom);

public Hotkey(IntPtr hWnd)
{
this.hWnd = hWnd;
System.Windows.Forms.Application.AddMessageFilter(this);
}

public int RegisterHotkey(System.Windows.Forms.Keys Key, KeyFlags keyflags)
{
UInt32 hotkeyid = GlobalAddAtom(System.Guid.NewGuid().ToString());
RegisterHotKey((IntPtr) hWnd, hotkeyid, (UInt32) keyflags, (UInt32) Key);
keyIDs.Add(hotkeyid, hotkeyid);
return (int) hotkeyid;
}

public void UnregisterHotkeys()
{
System.Windows.Forms.Application.RemoveMessageFilter(this);
foreach (UInt32 key in keyIDs.Values)
{
UnregisterHotKey(hWnd, key);
GlobalDeleteAtom(key);
}
}

public bool PreFilterMessage(ref System.Windows.Forms.Message m)
{
if (m.Msg == 0x312)
{
if (OnHotkey != null)
{
foreach (UInt32 key in keyIDs.Values)
{
if ((UInt32) m.WParam == key)
{
OnHotkey((int) m.WParam);
return true;
}


}
}
}
return false;
}
}
}

该类的使用方法:
在窗体的类中声明一个变量
private int Hotkey1;

在窗体的Load事件中加入如下代码:
Hotkey hotkey;
hotkey = new Hotkey(this.Handle);

//定义快键(Ctrl + F1)
Hotkey1 = hotkey.RegisterHotkey(System.Windows.Forms.Keys.F1, Hotkey.KeyFlags.MOD_CONTROL);
hotkey.OnHotkey += new HotkeyEventHandler(OnHotkey);

添加快键调用函数(显示/隐藏窗口):
public void OnHotkey(int HotkeyID)
{
if (HotkeyID == Hotkey1)
{
if (this.Visible == true)
this.Visible = false;
else
this.Visible = true;
}
else
{
this.Visible = false;
}
}

热点排行