//调用系统函数 将鼠标移动到相应位置
[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);
}

  

windows 简单api应用的更多相关文章

  1. mfc 调用Windows的API函数实现同步异步串口通信(源码)

    在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信.串口通信方便易行,应用广泛. 一般情况下,工控机和各智能仪表通过RS485总线进行通信.RS485的通信方式是半 ...

  2. Windows录音API学习笔记(转)

    源:Windows录音API学习笔记 Windows录音API学习笔记 结构体和函数信息  结构体 WAVEINCAPS 该结构描述了一个波形音频输入设备的能力. typedef struct { W ...

  3. 【转】Windows 7 API Internet Connection Sharing(ICS) 与 Wireless Hosted Network构建本地AP

    原文:http://hi.baidu.com/ritrachiao/item/bf7715e6bb8cb3a0c10d75be [此刻我要大大地记录一下!] 这个折腾了我好几天的Windows 7 A ...

  4. Windows录音API学习笔记

    Windows录音API学习笔记 结构体和函数信息  结构体 WAVEINCAPS 该结构描述了一个波形音频输入设备的能力. typedef struct { WORD      wMid; 用于波形 ...

  5. Windows Composition API 指南 - 认识 Composition API

    微软在 Windows 10中 面向通用 Windows 应用 (Universal Windows Apps, UWA) 新引入了一套用于用户界面合成的 API:Composition API.Co ...

  6. Windows录音API学习笔记--转

    Windows录音API学习笔记 结构体和函数信息  结构体 WAVEINCAPS 该结构描述了一个波形音频输入设备的能力. typedef struct { WORD      wMid; 用于波形 ...

  7. 掉坑日志:Windows Native API与DPI缩放

    高DPI显示器越来越普及,软件自然也要适应这个变化,最近实习的时候也遇到了一个关于DPI缩放的问题.因为内部框架的一个控件有BUG,会导致内容的显示出问题,后来实在没办法改成了用Windows Nat ...

  8. Windows Automation API和自动化测试

    https://zhuanlan.zhihu.com/p/22083601\ 感谢轮子哥点赞,这会儿消息扎堆过来了,轮带逛果然不是随便说说的…… 第二篇一个简单的Windows Automation ...

  9. .NET 6学习笔记(4)——如何在.NET 6的Desktop App中使用Windows Runtime API

    Windows Runtime API是当初某软为了区别Win32 API,力挺UWP而创建的另一套Windows 10专用的API集合.后来因为一些原因,UWP没火.为了不埋没很有价值的Window ...

随机推荐

  1. python 读帧和绘图的区别

    capture = cv2.VideoCapture(0) while True: #img = cv.QueryFrame(capture) ret, frame = capture.read() ...

  2. 监测CentOS下TCP断线

    TCP正常的断开,通信双方(服务端和客户端)都是能知道的.但是非正常的断开,比如直接拔掉了网线,就只能靠如下两种方法,实现短时间内的检测. 一.心跳包机制 心跳包机制,是网游设计中的常用机制.从用户层 ...

  3. echo “新密码”|passwd --stdin 用户名

    --stdin This option is used to indicate that passwd should read the new password from standard input ...

  4. linux 文件操作库函数

    fopen :打开文件 fread :读文件 fwrite : 写文件 fgetc : 读字符 fputc : 写字符 fscanf : 格式化读 fprintf : 格式化写 fseek : 文件偏 ...

  5. (原)Ubuntu16中安装nvidia的显卡驱动

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5638185.html part1 直接在“软件和更新-附加驱动”里面设置 安装完ubuntu16后,显 ...

  6. HDUOJ-4104 Discount

    Discount Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  7. 关于android闹钟,设置定时提醒的一点心得

    首先在设置提醒之前你需要一个入口,比如说onclick事件中,在此不做赘述. android中使用闹钟进行提醒其实非常简单,你只需要告知系统你想在什么时候被提醒,然后需要一个闹钟的广播接收器,当到你设 ...

  8. Python学习笔记014——迭代工具函数 内置函数zip()

    1 描述 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操 ...

  9. 关系数据库元数据处理类(一) 创建MSSQL元数据具体处理类

    public class SqlServer : BaseMetadata { public SqlServer(string connectionString) : base(new DbUtili ...

  10. 【转】一个对 Dijkstra 的采访视频

    一个对 Dijkstra 的采访视频 (也可以访问 YouTube 或者从源地址下载 MPEG1,300M) 之前在微博上推荐了一个对 Dijkstra 的采访视频,看了两遍之后觉得实在很好,所以再正 ...