C# 调用API 实现控制系统鼠标样式
来源:互联网 发布:unity3d金属材质球 编辑:程序博客网 时间:2024/05/03 17:35
前些天客户要在大屏上,操作组态图。巨晕啊,当时现场3-4个人在大屏下找鼠标指挥操作。组态图非要用鼠标操作。这这个就不说了。当时想了2个方案一个是silverlight中直接替换鼠标样式。另一个是WINFROM程序控制。由于silverlight替换鼠标属于伪替换,实际上是把系统鼠标隐藏起来自己换张图片。在操作上会有延迟。故采用C/S来实现。以下下代码实现。
鼠标PNG图形有一点要注意,实际上鼠标的有效位置是PNG巨型的对角线的焦点。所以制作PNG的时候需要注意。否则会感觉鼠标超级不听话。
using System.Runtime.InteropServices;
[DllImport("User32.DLL")]
public static extern bool SetSystemCursor(IntPtr hcur, uint id);
public const uint OCR_NORMAL = 32512;
public const uint OCR_IBEAM = 32513;
[DllImport("User32.DLL")]
public static extern bool SystemParametersInfo(uint uiAction, uint uiParam,
IntPtr pvParam, uint fWinIni);
public const uint SPI_SETCURSORS = 87;
public const uint SPIF_SENDWININICHANGE = 2;
private void button1_Click(object sender, EventArgs e)
{
//设置鼠标
Bitmap bmp = new Bitmap(System.Windows.Forms.Application.StartupPath+@"/鼠标.png", true);
Cursor cursor ;//= new Cursor(colorCursorHandle);
cursor = new Cursor(bmp.GetHicon());
SetSystemCursor(cursor.Handle, OCR_NORMAL);
SetSystemCursor(cursor.Handle, OCR_IBEAM);
}
private void button2_Click(object sender, EventArgs e)
{
//恢复
SystemParametersInfo(SPI_SETCURSORS, 0, IntPtr.Zero, SPIF_SENDWININICHANGE);
}
效果 鼠标变大了
- C# 调用API 实现控制系统鼠标样式
- c# 调用API mouse_event 模拟鼠标事件
- c# 调用API mouse_event 模拟鼠标事件
- VFP调用API实现代码模拟鼠标.键盘动作
- VFP调用API实现代码模拟鼠标.键盘动作
- C#调用Windows API实现自动登录
- C#调用Windows API实现自动登录
- C#调用Windows API实现自动登录
- C#调用Windows API实现自动登录
- C#调用Windows API实现自动登录
- C#使用Windows API实现桌面上的遮罩层(鼠标穿透)
- C# 加载自定义鼠标样式
- 鼠标移动实现样式改变
- c# api模拟鼠标活动
- 解决C# winForm自定义鼠标样式的两种实现方法详解
- c# 实现 鼠标控制
- C# 实现鼠标穿透
- C#调用API
- 双向BFS
- 刚学算法,程序运行不了,谁帮忙看看
- 有理想的程序员必须知道的15件事[转]
- 深度介绍Linux操作系统内核的工作原理
- javascript 网页设计 怎么在同一位置显示几张不同的图片(图片自动变换)
- C# 调用API 实现控制系统鼠标样式
- mysql 储存过程、触发器的创建、删除及使用
- ajax技术简介及入门实例 转帖
- 显示多幅图片
- linux for qq扫描硬盘,每隔一秒 硬盘灯闪一下,请使用的朋友注意了。
- 分布式系统博客与网文分享
- 为何失败-从一次DIY讲述hub/switch/router
- bit操作
- mysql 循环while、loop、REPEAT