Windows桌面小工具,在桌面右上角显示时钟(包括年月日等信息)

先上效果图:

几个用到的关键代码:

//务必在程序using部分添加该引用
using System.Runtime.InteropServices;
using System.Drawing;//在public Form1()之前添加以下代码
[DllImport("user32.dll")]
public static extern IntPtr GetDC(IntPtr hwnd);
[DllImport("user32.dll")]
public static extern Int32 ReleaseDC(IntPtr hwnd, IntPtr hdc);
[DllImport("gdi32.dll")]
public static extern uint GetPixel(IntPtr hdc, int nXPos, int nYPos);//获取指定位置(屏幕的x,y位置)的颜色
//返回C#中的Color类型
public Color GetColor(int x, int y)
{IntPtr hdc = GetDC(IntPtr.Zero); uint pixel = GetPixel(hdc, x, y);ReleaseDC(IntPtr.Zero, hdc);Color color = Color.FromArgb((int)(pixel & 0x000000FF), (int)(pixel & 0x0000FF00) >> 8,     (int)(pixel & 0x00FF0000) >> 16);return color;
}

后期优化:

1、由于Windows Form控件自身的原因,虽然设置Transparent属性可以显示透明色,但是并不能达到鼠标穿透的效果,因此我将其设置成:当鼠标移动进入控件时,自动隐藏窗体,以免影响鼠标的正常操作。

更新:可以设置鼠标穿透属性,但是做这个项目的时候没有完全掌握该方法,大家可以参考我的其他博客内容,有牵扯到相关的鼠标穿透属性。

2、由于上一步设置了鼠标进入自动隐藏,因此我们将无法改变时钟显示的位置,我们可以通过Load方法将其自动固定到桌面右上角位置,涉及到代码如下:

private void Form1_Load(object sender, EventArgs e)
{this.Left = Screen.PrimaryScreen.WorkingArea.Width - this.Width;this.Top = 0;
}

其他说明:

计时部分采用Windows Form自带的Timer控件实现,具体代码可见CSDN附件。

补充:

鼠标穿透使用到的部分有:

[DllImport("user32", EntryPoint = "SetWindowLong")]
private static extern uint SetWindowLong(IntPtr hwnd, int nIndex, uint dwNewLong);
[DllImport("user32", EntryPoint = "GetWindowLong")]
private static extern uint GetWindowLong(IntPtr hwnd, int nIndex);public string Penetrate(IntPtr Handle)
{uint intExTemp = GetWindowLong(Handle, GWL_EXSTYLE);uint oldGWLEx;oldGWLEx = SetWindowLong(Handle, GWL_EXSTYLE, intExTemp | WS_EX_TRANSPARENT |     WS_EX_LAYERED);return "设置鼠标穿透成功!";
}//调用部分
Penetrate(this.Handle);

带有鼠标穿透的整个项目(项目中包含部分其他未完成功能,请自动忽略)下载

-----------------------------------------------------------------------------

作者邮箱:zzudongxiang@163.com

获取屏幕指定位置颜色相关推荐

  1. Windows核心编程_获取鼠标指定位置的RGB颜色值

    Windows核心编程_获取鼠标指定位置的RGB颜色值 大家平常会见到很多屏幕取色工具,其原理都是获取鼠标位置的屏幕像素点颜色! 一般思路都是:获取鼠标位置,然后取出鼠标指向的屏幕像素点颜色! Get ...

  2. Android 获取屏幕指定坐标的颜色

    用到的API MediaProjectionManager MediaProjection VirtualDisplay ImageReader 原理:利用Android系统提供的投影功能把屏幕投影到 ...

  3. Android 获取屏幕指定坐标的颜色——“按键精灵”基础

    原理:借助Android系统提供的ImageReader读取当前屏幕,然后转化为Bitmap对象,Bitmap像素宽高正好和当前屏幕一致,然后调用Bitmap中的getPixel(x, y)方法获取目 ...

  4. Android 利用adb命令 使App自动点击屏幕指定位置

    public class AutoClickActivity extends AppCompatActivity implements View.OnClickListener {private Ap ...

  5. android adb点击坐标,Android 利用adb命令 使App自动点击屏幕指定位置

    public class AutoClickActivity extends AppCompatActivity implements View.OnClickListener { private A ...

  6. 【UE4】射线检测获取屏幕中心位置与制作瞄准准星

    射线检测 通过获取屏幕的中心点二维坐标,将其转换为三维世界坐标系,即可利用射线检测得到想要的数据. 准星材质 制作一个简单的圆形材质,也可使用十字准星贴图制作. 在HUD中绘制 新建一个继承自HUD的 ...

  7. python获取屏幕某像素颜色_获取屏幕像素颜色linux python3

    我有一个Python2.7的工作程序,我正试图将其转换为Python3.3.在 工作版本为:#!/usr/bin/python2 import gtk.gdk import sys def Pixel ...

  8. c#获取屏幕上某坐标点的颜色

    全栈工程师开发手册 (作者:栾鹏) c#教程全解 c#获取屏幕上某坐标点的颜色 using System.Runtime.InteropServices;private struct POINT {p ...

  9. 利用单片机实现天气服务器获取指定位置天气数据

    大家好,今天主要和大家聊一聊,如何利用单片机从心知天气服务器上获取到指定位置的天气数据,咱们先来了解一下心知天气吧!​ 目录 第一:天气数据API 第二.通信原理图以及数据解析 第三.天气数据返回结果 ...

最新文章

  1. Codewars Vasya - Clerk--6 kyu--Python解法
  2. Kali Linux更新后无法启动解决了
  3. highly dynamic working process is a great approach for learning
  4. 在windows7上的通过composer安装yii2
  5. 基于Qt的光盘刻录开发
  6. memcpy和memmove的区别以及内存重叠问题
  7. ScrollView
  8. v割与邮票孔_pcb板V割和邮票孔的区别
  9. PDF怎么转换成Word文字
  10. python乌龟吃鱼_Python面向对象练习-通过pygame改良乌龟吃鱼
  11. 【FusionCompute】基于FreeNAS部署并使用虚拟存储(五)
  12. IDEA集成docker-maven-plugin配置CA安全证书
  13. 【聚类】算法及其评估指标
  14. Elasticsearch 解决集群 Yellow 与 Red 的问题
  15. win7添加ftp到计算机,技术编辑帮你win7系统FTP地址添加到资源管理器的收藏夹下的设置步骤...
  16. 拉结尔如何在电脑上玩 拉结尔模拟器玩法教程
  17. 一些优秀的小工具,快速帮助我们办公!
  18. 出租车系统java_基于WEB的JAVA出租车打车系统
  19. 2018最新引流脚本话术设置,引流话术大全集合
  20. 逻辑地址、虚拟地址、线性地址、物理地址

热门文章

  1. 车联网V2X通信技术及应用介绍
  2. 测试内推 | 霍格沃兹、荔枝、字节、百度文娱、京东(金融)、阿里招人啦
  3. Oracle19C基础讲解及密码过期问题处理
  4. Antd的Upload+fetch+FormData上传Excel文件请求方式?
  5. sfdisk 分区命令
  6. vue.js入门 1.v-for中in与of的区别:
  7. python serial库_python3有serial库吗
  8. 正则化(regularization)方法总结
  9. 手把手教你爬取天堂网1920*1080大图片(批量下载)
  10. ES6从入门到入狱-模块篇