开发者社区> ibonker> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

windows 简单api应用

简介: //调用系统函数 将鼠标移动到相应位置 [DllImport("user32.dll", EntryPoint = "SetCursorPos")] public extern static bool SetCursorPos(int x, int y); //获取当前鼠标的绝对位置 [StructLayout(LayoutKind.
+关注继续查看
//调用系统函数 将鼠标移动到相应位置
[DllImport("user32.dll", EntryPoint = "SetCursorPos")]
public extern static bool SetCursorPos(int x, int y);
//获取当前鼠标的绝对位置
[StructLayout(LayoutKind.Sequential)]
        public struct POINT
        {
            public int X;
            public int Y;
        }
[DllImport("User32")]
public extern static bool GetCursorPos(out POINT p);
//是否显示鼠标箭头
[DllImport("User32")]
public extern static int ShowCursor(bool bShow);
 //调用系统函数 模拟鼠标事件函数
        [DllImport("user32", EntryPoint = "mouse_event")]
        private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);

例如:
 private const int MOUSEEVENTF_LEFTDOWN = 0x0002; //模拟鼠标左键按下
        private const int MOUSEEVENTF_LEFTUP = 0x0004; //模拟鼠标左键抬起 
        private const int MOUSEEVENTF_RIGHTDOWN = 0x0008; //模拟鼠标右键按下 
        private const int MOUSEEVENTF_RIGHTUP = 0x0010; //模拟鼠标右键抬起
        private const int MOUSEEVENTF_ABSOLUTE = 0x8000;//鼠标绝对位置
mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0);//点击  其中 int dx, int dy没有效果
 [DllImport("user32.dll")]
        static extern IntPtr SetActiveWindow(IntPtr hWnd);//激活窗体
[DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool SetForegroundWindow(IntPtr hWnd);//把窗体顶层显示
//获取窗体的句柄,其中第一个参数可以为null,第二个参数是任务管理器中“应用程序的 名称”
[DllImport("user32.dll")]
        static extern IntPtr FindWindow(string strClass, string strWindow);
//获取窗口的相对的位置 高宽
 [DllImport("user32.dll")]
        private static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);

   [DllImport("user32.dll")]
        private static extern bool IsZoomed(IntPtr hWnd);//判断窗口最大化,最大化则返回true
//以什么样的方式显示窗体
[DllImport("user32.dll")]
        private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

//ShowWindow参数
 private const int SW_SHOWNORMAL = 1;
 private const int SW_RESTORE = 9;
 private const int SW_SHOWNOACTIVATE = 4;
 //SendMessage参数
 private const int WM_KEYDOWN = 0X100;
 private const int WM_KEYUP = 0X101;
 private const int WM_SYSCHAR = 0X106;
 private const int WM_SYSKEYUP = 0X105;
 private const int WM_SYSKEYDOWN = 0X104;
 private const int WM_CHAR = 0X102;
ShowWindow(ParenthWnd, SW_RESTORE); //还原窗口

  鼠标滚轮事件

[DllImport("user32.dll")]
        static extern void mouse_event(int flags, int dX, int dY, int buttons, int extraInfo);
 
        const int MOUSEEVENTF_MOVE = 0x1;
        const int MOUSEEVENTF_LEFTDOWN = 0x2;
        const int MOUSEEVENTF_LEFTUP = 0x4;
        const int MOUSEEVENTF_RIGHTDOWN = 0x8;
        const int MOUSEEVENTF_RIGHTUP = 0x10;
        const int MOUSEEVENTF_MIDDLEDOWN = 0x20;
        const int MOUSEEVENTF_MIDDLEUP = 0x40;
        const int MOUSEEVENTF_WHEEL = 0x800;
        const int MOUSEEVENTF_ABSOLUTE = 0x8000;
 
 
        protected override bool ProcessCmdKey(ref Message msg, Keys key)
        {
            const int WM_KEYDOWN = 0x100;
            const int WM_SYSKEYDOWN = 0x104;
            if ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN))
            {
                switch (key)
                {
                    case Keys.Down:
                        mouse_event(MOUSEEVENTF_WHEEL, 0, 0, -100, 0);
                        break;
                    case Keys.Up:
                        mouse_event(MOUSEEVENTF_WHEEL, 0, 0, 100, 0);
                        break;
                }
            }
            return base.ProcessCmdKey(ref msg, key);
        }

  

作者:Bonker
出处:http://www.cnblogs.com/Bonker
QQ:519841366
       
本页版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
32、Windows API GDI(4)
区域(Regions)、路径(Paths)与修剪(Clip)操作 一、区域[2]     区域是一种对象,具有形状、位置、大小,用于进行填充、绘制、反转、边沿勾勒等操作,或用于限制DC的输出范围(修剪)。
613 0
31、Windows API GDI(3)
一、绘制图形     GDI所能绘制形状有很多种,可区分为标准形状和非标准形状。标准形状使用几个简单、确定的属性就可以确定的形状,比如矩形(左上角点位置和长度)、椭圆(使用外切矩形)、圆角矩形(一个矩形加圆角半径)、弓形、扇形。
657 0
30、Windows API GDI(2)
一、GDI的几个示例与概念 1、笔和话刷的基本操作 示例 画笔示例 **************************************//* 头文件 */#include /* 函数声明 */void GdiOut(HDC hdc);// WinMainint WI...
719 0
29、Windows API GDI(1)
GDI是Graphics Device Interface(图形设备接口)的简称,当Windows应用程序需要显示点、线、图像、文字等内容,在显示器或打印输入这些内容时,就需要使用到GDI。图形设备接口是Windows图形界面的基础。
741 0
【镜像更新】Windows Server 2019 数据中心版
信息摘要: Windows Server 2019 数据中心版镜像更新适用客户: 使用Windows Server的用户版本/规格功能: 镜像ID: win2019_64_dtc_1809_zh-cn_40G_alibase_20190318.
2585 0
Windows server2003配置ftp服务
Windows server2003配置ftp服务
0 0
+关注
ibonker
乐于分享
文章
问答
文章排行榜
最热
最新
相关电子书
更多
阿里云 API 精选手册(Alibaba Cloud API Playbook)
立即下载
API 平台的安全实践
立即下载
API 网关实践
立即下载