using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; namespace JwKdsV.Core { public class WindowsAPI { //窗口拖动 public const int WM_NCLBUTTONDOWN = 0xA1; public const int HT_CAPTION = 0x2; [DllImport("user32.dll")] public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); [DllImport("user32.dll")] public static extern bool ReleaseCapture(); public static void MoveWindows(IntPtr handle) { ReleaseCapture(); SendMessage(handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); } //键盘 public const uint KEYEVENTF_EXTENDEDKEY = 0x1; public const uint KEYEVENTF_KEYUP = 0x2; [System.Runtime.InteropServices.DllImport("user32.dll")] static extern short GetKeyState(int nVirtKey); [System.Runtime.InteropServices.DllImport("user32.dll")] static extern void keybd_event(byte bVk , byte bScan , uint dwFlags , uint dwExtraInfo); public enum VirtualKeys : byte { VK_NUMLOCK = 0x90, //数字锁定键 VK_SCROLL = 0x91, //滚动锁定 VK_CAPITAL = 0x14, //大小写锁定 VK_A = 62 } public static bool GetState(VirtualKeys Key) { return (GetKeyState((int)Key) == 1); } public static void SetState(VirtualKeys Key , bool State) { if (State != GetState(Key)) { keybd_event((byte)Key , 0x45 , KEYEVENTF_EXTENDEDKEY | 0 , 0); keybd_event((byte)Key , 0x45 , KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP , 0); } } ////开启键盘大写 //SetState(VirtualKeys.VK_CAPITAL, true); ////关闭键盘大写 //SetState(VirtualKeys.VK_CAPITAL, false); ////开启键盘滚动锁定 //SetState(VirtualKeys.VK_SCROLL, true); ////关闭键盘滚动锁定 //SetState(VirtualKeys.VK_SCROLL, false); ////开启键盘数字锁定键 //SetState(VirtualKeys.VK_NUMLOCK, true); ////关闭键盘数字锁定键 //SetState(VirtualKeys.VK_NUMLOCK, false); public const int WM_SYSCOMMAND = 0x0112; public const int SC_CLOSE = 0xF060; [System.Runtime.InteropServices.DllImport("user32.dll" , CharSet = System.Runtime.InteropServices.CharSet.Auto , SetLastError = true)] public static extern IntPtr FindWindow(String sClassName , String sAppName); [System.Runtime.InteropServices.DllImport("user32.dll" , CharSet = System.Runtime.InteropServices.CharSet.Auto , SetLastError = true)] public static extern int SendMessage(IntPtr hWnd , uint Msg , int wParam , int lParam); [System.Runtime.InteropServices.DllImport("wininet.dll")] public extern static bool InternetGetConnectedState(out int description , int reservedValue); [DllImport("user32.dll" , CharSet = CharSet.Auto , ExactSpelling = true)] public static extern int GetSystemMetrics(int nIndex); public bool IsTouchAvailable() { return ((GetSystemMetrics(0x5e) & 0x40) > 0); } } }