五一,给心情放个假-酷狗电台桌面版

简介:

平时闲下来的时候总是喜欢听听歌,放松放松心情。也不知道哪些歌好听,所以总是用酷狗电台听歌。所以,一套“复杂”的流程就开始了:双击浏览器→输入百度→回车→输入酷狗电台→点击→最小化浏览器→OK。无奈,这个过程太复杂了,作为程序员,为何不让这套“复杂”的流程变得简单一些呢。好!马上动手!

 

先来show一下界面效果:

 

大致思路是将这个页面放入webbrowser控件中,但是该如何在webbrowser控件中来如何定位这个界面区域呢?之前对webbrowser控件也不是很理解,好吧,先从webbrowser控件下手。经过在网上的一番搜索,终于找到了解决办法。

但又有一个问题出现了,有时候因为网速慢的缘故,页面无法及时显示出来,显示下面的这样的效果:

 

这也太难看了吧!好吧,那就对页面的整个加载过程进行一些分析看看,居然发现了一个规律。

 

分析过程:

一:页面的定位

 

以下代码可以设置webBrowser控件的滚动条位置:

HtmlDocument document = this.webBrowser1.Document;//获取控件中的html文档,类似于网页中的document对象。

 document.Window.ScrollTo(320, 1520);//将文档窗体滚动到指定位置,320表示横坐标,1520表示纵坐标,这都可以设置的。

 

二:气泡提示

1.欢迎收听酷狗电台。。。

2.努力加载中,请稍后。。。

3.加载完毕,即将播放。。。

 

webBrowser1_Navigating   页面加载中  

webBrowser1_DocumentCompleted   页面加载完毕后

 

定义变量来统计加载和加载完毕的次数:

ing  1 2   3  4            5 6 7 8 9 10 11  12 13  14  15 16 17

end      (1)      (1) 2 3                                                               4 5 6  过程完毕 (1时调整页面位置 4的时候就在加载音乐  5时开始播放  6时将整个背景显示出来)

 

利用timer控件判断加载次数来决定提示信息为什么 

 

ing  1 提示  欢迎收听。。。

ing  5 提示   努力加载中。。。

end 4 提示   即将播放。。。(以防网速影响加载速度)

 

NotifyIcon.ShowBalloonTip 方法 (Int32)

如果这两个气球提示来自同一应用程序,则第一个气球提示在再次调用 ShowBalloonTip 方法时立即关闭。 某些情况下,第二个气球将在第一个气球的顶部打开。

 

附部分主要源码:

 

复制代码
   private  void KuGou_Load( object sender, EventArgs e)
        {
             // 设置标题背景
            labText.BackColor = Color.Transparent;
             // 初始不显示pannel
            panel1.Visible =  false;
             // 页面加载之前,气泡提示
             this.notifyIcon1.ShowBalloonTip( 500" 酷狗电台-桌面版-Babycool "" 欢迎使用酷狗电台-桌面版-Babycool ", ToolTipIcon.Info);
             // http://www.cnblogs.com/babycool
            
// 导航
            webUrl.Navigate( " http://app.baidu.com/KugouRadio ");
             // 初始化b的值
            b =  false;
        }
 
 
复制代码
// 变量 计数 
        
// 统计加载页面文档的次数
         int ing =  0;
         // 统计文档加载完成的次数
         int end =  0;

         // 文档全部加载后执行
         private  void webUrl_DocumentCompleted( object sender, WebBrowserDocumentCompletedEventArgs e)
        {
             // 控制滚动条,设定页面的显示位置
            HtmlDocument docu =  this.webUrl.Document;
            docu.Window.ScrollTo( 132210);
             // http://www.cnblogs.com/babycool
            
// 每执行一次  计数+1
            end++;
             // 判断
             if (end ==  4)
            {
                 this.notifyIcon1.ShowBalloonTip( 1000" 酷狗电台-桌面版-Babycool "" 加载完毕,开始播放…… ", ToolTipIcon.Info);
            }
        }

         // 在导航发生前执行
         private  void webUrl_Navigating( object sender, WebBrowserNavigatingEventArgs e)
        {
             // 每执行一次  计数+1
            ing++;
             // www.cnblogs.com/babycool
            
// 判断
             if (ing ==  5)
            {
                 this.notifyIcon1.ShowBalloonTip( 1000" 酷狗电台-桌面版-Babycool "" 努力加载中,请稍后…… ", ToolTipIcon.Info);
            }
        }
复制代码
复制代码

 

为了界面的美化效果,又将form窗体变成了无边框窗体,在顶部加入了拖入的效果。之前在看同学玩地下城的时候看到的这种效果,鼠标移上显示,移开隐藏,觉得特炫。现在实现了才发现还挺简单的嘛!不过效果是达到了,感觉还是不太满意,鼠标在移动时会出现闪动的现象,还需要做进一步的修改。

 

最后,还有一个很让人纠结的问题,众所周知,winform中的webbrowser控件占用的内存太大了,仅这么个150k的小程序运行起来就占用了将近50M的内存。所以,下一步是希望能够找到一个可以替代webbrowser控件的第三方控件,来降低内存的占用。

   软件不断更新中,敬请期待。。。

 附下载链接:http://www.kuaipan.com.cn/file/id_5028779638390793.htm

本文转自 酷小孩 博客园博客,原文链接:http://www.cnblogs.com/babycool/archive/2012/05/01/2477829.html  ,如需转载请自行联系原作者

相关文章
|
2月前
|
存储 人工智能 容灾
三大国际解决方案“一键上线”,阿里云飞天企业版为全球客户打造AI时代最开放的云
刚刚,2025阿里云国际峰会「Alibaba Cloud Global Summit 2025」在新加坡成功举办,在阿里云服务新加坡的十周年的程碑时刻,集中展示最新的AI及云产品与服务,助力全球企业拥抱新一轮科技浪潮。 飞天企业版(Apsara Stack)作为阿里云为政企客户构建的资源和云管完全独立的企业级云平台,在本次大会亮相,并首次展示了面向海外市场的三大解决方案:主权云、AI云与云迁移方案。 此次发布标志着阿里云在亚太地区深化技术赋能、推动数字主权建设与人工智能创新的重要战略布局,吸引了全球政企代表、技术专家与行业领袖的关注。
403 0
|
12月前
|
数据采集 机器学习/深度学习 人工智能
云栖实录 | GenAI 时代 AI Infra 工程技术趋势与平台演进
本文根据2024云栖大会实录整理而成,演讲信息如下: 演讲人:林伟 | 阿里云智能集团研究员、阿里云人工智能平台 PAI 负责人;黄博远|阿里云智能集团资深产品专家、阿里云人工智能平台 PAI 产品负责人 活动:2024 云栖大会 - AI Infra 核心技术专场、人工智能平台 PAI 年度发布专场
|
机器学习/深度学习 数据采集 TensorFlow
从零到精通:TensorFlow与卷积神经网络(CNN)助你成为图像识别高手的终极指南——深入浅出教你搭建首个猫狗分类器,附带实战代码与训练技巧揭秘
【8月更文挑战第31天】本文通过杂文形式介绍了如何利用 TensorFlow 和卷积神经网络(CNN)构建图像识别系统,详细演示了从数据准备、模型构建到训练与评估的全过程。通过具体示例代码,展示了使用 Keras API 训练猫狗分类器的步骤,旨在帮助读者掌握图像识别的核心技术。此外,还探讨了图像识别在物体检测、语义分割等领域的广泛应用前景。
255 0
|
iOS开发 MacOS
macOS开机自启动执行脚本
【8月更文挑战第23天】在macOS上设置开机自动执行脚本可通过三种方式:一是利用“系统偏好设置”中的“用户与群组”功能直接添加脚本或应用;二是通过创建`.plist`文件并放置于`LaunchAgents`目录,这种方式能更精细地控制脚本运行;三是使用cron任务,在系统启动时执行脚本,但该方法不太适用于图形界面程序且可能受限于启动顺序。每种方法各有优缺点,需根据实际情况选择。
2197 0
|
机器学习/深度学习 人工智能 算法
【解锁AI新纪元】深度剖析元学习meta-learning:超越监督学习的智慧飞跃,掌握学习之学习的奥秘!
【8月更文挑战第2天】【元学习meta-learning】通俗易懂讲解:解锁学习之学习的奥秘与监督学习之别
233 24
|
存储 Linux 网络安全
如何在 Linux 中检查和设置时区?
【7月更文挑战第12天】
438 2
如何在 Linux 中检查和设置时区?
|
SQL 关系型数据库 MySQL
|
XML Shell 开发工具
repo 常用命令汇总——202308
repo 常用命令汇总——202308
1170 0
|
算法 NoSQL Redis
彻底搞懂Redis的内存淘汰算法和原理
彻底搞懂Redis的内存淘汰算法和原理
彻底搞懂Redis的内存淘汰算法和原理
|
存储 物联网 网络性能优化
一文教你小区如何自建快递柜
共享快递拟收费事件后,国内小区物业开启一波自建快递柜的浪潮,阿里平台快递柜销量暴涨1400%。那么问题来了,企业如何基于阿里云物联网平台快速构建一套高可用的共享快递柜服务?
666 1
一文教你小区如何自建快递柜