基本信息
源码名称:C# 实现 虚拟桌面 源码下载
源码大小:0.25M
文件格式:.zip
开发语言:C#
更新时间:2016-01-28
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; using System.Windows.Forms; using System.Windows; namespace 虚拟桌面 { public class VirtualDesktopHelper : IDisposable { #region 字段 private const int winCount = 9; private List<IntPtr>[] winGroup = new List<IntPtr>[winCount];//窗体组 private int currentID = 0;//当前虚拟桌面ID private delegate bool CallBack(IntPtr hwnd, int lParam); #endregion public int CurrentID { get { return this.currentID; } } #region 属性 private IntPtr selfHWND; public IntPtr SelfHWND { get { return this.selfHWND; } } private static int hotKeyID = 80000; public static int HotKeyID { get { return hotKeyID; } } #endregion public VirtualDesktopHelper(Form hostForm) { this.selfHWND = hostForm.Handle; //初始化窗体组 for (int index = 0; index < winGroup.Length; index) { winGroup[index] = new List<IntPtr>(); } } public void RegisterHotKey(ModifyKeys modifyKey)// 注册系统热键 { int id = hotKeyID; API.RegisterHotKey(selfHWND, id , (uint)modifyKey, Keys.D1); API.RegisterHotKey(selfHWND, id , (uint)modifyKey, Keys.D2); API.RegisterHotKey(selfHWND, id , (uint)modifyKey, Keys.D3); API.RegisterHotKey(selfHWND, id , (uint)modifyKey, Keys.D4); API.RegisterHotKey(selfHWND, id , (uint)modifyKey, Keys.D5); API.RegisterHotKey(selfHWND, id , (uint)modifyKey, Keys.D6); API.RegisterHotKey(selfHWND, id , (uint)modifyKey, Keys.D7); API.RegisterHotKey(selfHWND, id , (uint)modifyKey, Keys.D8); API.RegisterHotKey(selfHWND, id , (uint)modifyKey, Keys.D9); API.RegisterHotKey(selfHWND, hotKeyID - 1, (uint)ModifyKeys.Alt, Keys.Oemtilde); } public void UnRegisterHotKey()// 缷载系统热键 { int id = hotKeyID; for (int i = 0; i < winCount; i) { API.UnregisterHotKey(selfHWND, id i); } API.UnregisterHotKey(selfHWND, hotKeyID - 1); } public void Dispose() { for (int index = 0; index < winGroup.Length; index) { foreach (IntPtr hwnd in winGroup[index]) { if (API.IsWindowVisible(hwnd) == 0) { API.ShowWindow(hwnd, (int)WindowAction.ShowNoActivate); } } } } private static class API { #region Import API /// <summary> /// 注册热键 [DllImport("user32")] public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint control, Keys vk); /// <summary> /// 缷载热键 [DllImport("user32")] public static extern bool UnregisterHotKey(IntPtr hWnd, int id); [DllImport("user32")] public static extern int IsWindowVisible(IntPtr hWnd); [DllImport("user32")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); #endregion } private enum WindowAction { Hide = 0x00, Show = 0x04, Restore = 0x03, ShowNoActivate = 0x08 } [Flags] public enum ModifyKeys { None = 0x00, Alt = 0x01, Ctrl = 0x02, Shift = 0x04, Windows = 0x08 } } }