基金网每隔一分钟会更新净值估算,每次要打开网站看挺麻烦的,于是制作了一个桌面小工具,在桌面顶层并且透明显示,每隔一分钟抓取数据显示。
净值估算例子如下:
http://fund.eastmoney.com/000167.html

开发完成后的结果如下:

开发过程:

1、参考了“.net winForm 实现类似qq 弹出新闻一文”的窗体美化效果,放了两个Panel当背景和标题栏

http://www.cnblogs.com/echosong/p/3500563.html

2、在中间放一个Label显示信息、在工具栏拉一个ContextMenuStrip和NotifyIcon作为最小化到托盘时的显示和退出菜单操作,其中notifyIcon1的ContextMenuStrip属性设为contextMenuStrip1,Icon属性设为本地一个IOCN图标文件。

3、通过HtmlAgilityPack解析html源码得到所需的数据。

<div id="statuspzgz" class="fundpz"><span class="green bold">1.1843</span><div id="statuszdf" class="fundzf"><p class="green">-0.0067</p><p class="green">-0.56%</p></div><p class="time">2014-03-06 15:00</p></div>

解析用到的路径为:
//div[@id='statuspzgz']/span
//div[@id='statuszdf']/p[1]
//div[@id='statuszdf']/p[2]
//div[@id='statuspzgz']/p[@class='time']

完整代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HtmlAgilityPack;
using System.Threading.Tasks;
using System.Threading;
using System.Runtime.InteropServices;namespace Demo
{public partial class Form8 : Form{const string url = "http://fund.eastmoney.com/000167.html";public Form8(){InitializeComponent();lblInfo.Text = "";           this.ShowInTaskbar = false;//任务栏不显示this.Opacity = 0.60;//透明度this.TopMost = true;//顶层显示Task.Factory.StartNew(() => Do(cts));}CancellationTokenSource cts = new CancellationTokenSource();private void Do(CancellationTokenSource cts){while (!cts.IsCancellationRequested){string html = Utils.GetHtmlSource(url, Encoding.UTF8);if (string.IsNullOrEmpty(html)) return;HtmlNode rootNode = null;HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();document.LoadHtml(html);rootNode = document.DocumentNode;string s1 = GetNodeText(rootNode, "//div[@id='statuspzgz']/span");string s2 = GetNodeText(rootNode, "//div[@id='statuszdf']/p[1]");string s3 = GetNodeText(rootNode, "//div[@id='statuszdf']/p[2]");string s4 = GetNodeText(rootNode, "//div[@id='statuspzgz']/p[@class='time']");this.SafeCall(() =>{lblInfo.Text = s1 + "\r\n" + s2 + "\r\n" + s3 + "\r\n" + s4;});Thread.Sleep(1000 * 60); //每隔60s查询}}private string GetNodeText(HtmlNode rootNode, string path){HtmlNode temp = rootNode.SelectSingleNode(path);if (temp != null)return temp.InnerText;return "";}[DllImport("user32.dll")]//方法扑捉public static extern bool ReleaseCapture();[DllImport("user32.dll")]public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);public const int WM_SYSCOMMAND = 0x0112;public const int SC_MOVE = 0xF010;public const int HTCAPTION = 0x0002;void Panel2MouseDown(object sender, MouseEventArgs e){//扑捉事件ReleaseCapture();//发送消息给window Api 来实现SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);//}private void label2_Click(object sender, EventArgs e){Application.Exit();}/// <summary>  /// 隐藏窗体,并显示托盘图标  /// </summary>  private void HideForm(){this.Visible = false;this.WindowState = FormWindowState.Minimized;notifyIcon1.Visible = true;}/// <summary>  /// 显示窗体  /// </summary>  private void ShowForm(){this.Visible = true;this.WindowState = FormWindowState.Normal;notifyIcon1.Visible = false;}private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e){ShowForm();}private void ToolStripMenuItemShow_Click(object sender, EventArgs e){ShowForm();}private void toolStripMenuItemExit_Click(object sender, EventArgs e){Application.Exit();}private void label1_Click(object sender, EventArgs e){HideForm();}}
}

其中GetHtmlSource方法可以参考另一文章:

C#采集CSDN单个博客所有文章
http://blog.csdn.net/gdjlc/article/details/11620915

WinForm制作定时显示基金净值的桌面小工具相关推荐

  1. python小工具开发_使用Python制作一个桌面小工具

    今天,我们制作一个有意思的小工具,利用Python获取历史上的今天发生的事情. [分析] 个人总结了一下,"历史上的今天"有很多调用接口.有很多调用接口都是收费的或者就是免费但限制 ...

  2. python制作一个桌面小工具

    python实现一个桌面小工具,制作一个桌面的便签提醒工具 参考代码:https://github.com/cosven/memo 参考链接:https://www.jb51.net/article/ ...

  3. 显示计算机名在桌面壁纸,Windows桌面壁纸自动显示计算机详细信息小工具–BgInfo...

    Windows桌面壁纸自动显示计算机详细信息小工具–BgInfo 这个东西是微软官方出的,他会读取系统信息,然后更改现在正在使用的桌面图片,写入图片后自动退出程序.所以说基本没有占用. 本站备份程序下 ...

  4. 快捷键调出计算机桌面小工具,工具推荐:巧用快捷键秒变电脑高手

    - 前言 - 最近迷上了新剧<西部世界>,美国西部丶科幻丶人工智能丶完美结合,大爱,这次的图就用剧照啦,回归正题. 如果电脑是你工作的主要方式,那么熟练使用键盘快捷键可以帮助提高工作效率, ...

  5. 手把手教你做音乐播放器(八)桌面小工具(上)

    第8节 桌面小工具 桌面小工具是可以放置在主界面的.快速控制应用的小助手.例如我们的音乐小工具,它可以帮助用户在桌面上就完成音乐的暂停.播放.切换等操作,而不需要启动应用本身. 在安卓系统中,我们也常 ...

  6. 基于RT-THREAD的桌面小工具

    摘要 这个桌面小盒子是之前的东西,一直放着没有整理好.最近有空了就把他整理整理. 小盒子主要用来显示时间和天气预报,功能比较简单,其实还有很多可以玩的,懒得弄,所以就把最简单的整理出来. 软件是基于r ...

  7. win7倒计时桌面小工具_iOS 14系统面板截图曝光,新增桌面小工具,越来越像安卓了...

    商务合作请联系QQ:710035765 大家好,我是波老师.随着iOS 14越来越多的爆料,波老师预测距离iOS 14测试版的发布也要越来越近了.近日,有博主在Twitter上曝出了iOS 14墙纸设 ...

  8. 在计算机桌面上添加小工具日历,实用桌面小工具时钟日历在win7中的添加方法...

    我们在win7系统的使用中,小伙伴们都是知道的系统可以直接选择安装不同的小工具在电脑中使用,比如电脑中的时钟日历等都是可以直接安装在桌面来使用的牡丹石有小伙伴对于时钟日历不知道是在哪里添加到桌面的,对 ...

  9. MooTool 1.0.0 发布,开发者常备桌面小工具

    MooTool 1.0.0 已发布,开发者常备桌面小工具. MooTool A handy desktop toolset for developers. 开发者常备桌面小工具 支持的功能 Host切 ...

最新文章

  1. 企业智能化升级之路:CSDN《2017-2018中国人工智能产业路线图V1.0》重磅发布
  2. python request-python3的request用法实例
  3. Python将文字转拼音
  4. 国家开放大学2021春1127实用卫生统计学题目
  5. python字符串是用双引号括起来的_用python连接字符串列表并用引号将每个字符串括起来...
  6. Java Float类详解
  7. CentOS Linux 环境 Rails 安装记录
  8. LIBUV学习笔记(三)libuv中pipe/tty相关操作以及一个简单的unix域回射服务器/客户端例子...
  9. java lambda教程_Lambda系列教材 (一)- Java Lambda 表达式教程
  10. Atitit 研发团队建设----福利法案--非物质福利与物质福利法案
  11. win10字体大小_暴露年龄警告!Win10干掉了多少装机必备?
  12. 数字和字符对照关系表常用(编码表)
  13. 招投标工作中投标书编制的流程是怎样的?
  14. 2022-2027年中国吉他行业市场调研及未来发展趋势预测报告
  15. 2022最新二开微交易系统股票配资理财系统源码+附教程
  16. 梦幻西游手游显示该服务器已满,梦幻西游手游100级突破任务怎么开启 解锁服务器100级任务攻略_《梦幻西游手游》官网...
  17. 互联网快讯:中国石化与隆基达成战略合作;极米多款投影产品持续热销;百度网盘青春版正式上线
  18. 图解HTTPS非/对称加密,CA证书流程
  19. Ubuntu 18.04 run方式安装Cuda9.0 惠普Z6工作站
  20. linux下格式化apfs,APFS文件系统科普贴

热门文章

  1. Python 爬取财务报表
  2. 报错:Property or method “item“ is not defined on the instance but referenced during render.
  3. 使用PDF补丁丁批量导入书签的办法
  4. 无人机拉力测试台螺旋桨的正确安装方式
  5. 5个借势小技巧,教你打造中秋爆款营销活动
  6. blob 在线解码_量子算命,在线掷筊:一个IBM量子云计算机的应用实践,代码都有了...
  7. C# 学习笔记——PL 并行编程 TPL 和传统 .NET 异步编程
  8. 必读的数据库领域论文
  9. 了解WEB前端开发吗,风风雨雨30年,前端开发变迁史
  10. 实时操作系统和分时操作系统之间的区别是什么