flashelf
posts - 24, comments - 282, trackbacks - 4, articles - 3
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
OneDay “屏幕任务”小软件 TaskScreen_080408
Posted on 2008-05-08 14:55
曲滨*銘龘鶽
阅读(1562)
评论(17)
编辑
收藏
所属分类:
OneDay 小软件
软件没什么就是,花点时间写点代码省的手生;特此建立 “
OneDay 小软件”个人分类,都是一些一天左右可以做出来的东西、主要为了系统练习一些技术,
软件都是半成品,各位看管不要挑剔就好;代码可以拿去随便用,如果您从我的代码中学习到了东西或找到了灵感来这里说声谢谢或顶一下就好了。
软件截图:
点击看大图
红色的字就是软件的效果了、任务栏中 FoxMail 前面的图标就是本程序;程序没有什么高深技术就是用了几个API;技术基本和上一次发的“CS忙狙器”类似说明如下
程序中用到的API
//
取得绘图句柄
[DllImport(
"
user32.dll
"
, CharSet
=
CharSet.Auto)]
public
static
extern
IntPtr GetDC(IntPtr hWnd);
//
释放绘图句柄
[DllImport(
"
user32.dll
"
, CharSet
=
CharSet.Auto)]
public
static
extern
int
ReleaseDC(IntPtr hWnd, IntPtr hDC);
//
刷新区域
[DllImport(
"
user32.dll
"
, CharSet
=
CharSet.Auto)]
public
static
extern
bool
InvalidateRect(IntPtr hWnd, IntPtr lpRect,
bool
bErase);
应用程序初始化:
隐藏窗口,这里可以使窗口根本就不出现
protected
override
CreateParams CreateParams
{
get
{
base
.Visible
=
false
;
//
隐藏窗口
return
base
.CreateParams;
}
}
程序绘图流程很简单:
取得屏幕绘图句柄 GetGC -> 创建
Graphics -> 向屏幕上写字 -> 释放绘图句柄
ReleaseDC
private
void
timer1_Tick(
object
sender, EventArgs e)
{
if
(swTick
==
false
)
{
swTick
=
true
;
try
{
IntPtr hdc;
System.Drawing.Graphics g;
int
x
=
Settings.Default.TextXY.X;
int
y
=
Settings.Default.TextXY.Y;
Rectangle workingArea
=
Screen.PrimaryScreen.WorkingArea;
Rectangle TaskDrawArea
=
new
Rectangle(x, y, workingArea.Width
-
x, workingArea.Height
-
y);
int
textOpacity
=
50
;
hdc
=
GetDC(IntPtr.Zero);
//
1) 参数 0 就是取得整个屏幕的GC句柄
using
(g
=
System.Drawing.Graphics.FromHdc(hdc))
{
g.SmoothingMode
=
System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.TextRenderingHint
=
System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
//
设置利用 ClearType
Color clr
=
Color.FromArgb(textOpacity, Settings.Default.TextColor);
Font f
=
Settings.Default.TextFont;
using
(SolidBrush sldbrush
=
new
SolidBrush(clr))
{
g.DrawString(Settings.Default.TaskText.Replace(
"
\t
"
,
"
"
), f, sldbrush, TaskDrawArea);
//
2) 写字
}
}
ReleaseDC(IntPtr.Zero, hdc);
//
2)释放GC
}
catch
(Exception ex)
{
Debug.WriteLine(ex.Message);
}
finally
{
swTick
=
false
;
}
}
}
窗口关闭时:
使用
InvalidateRect
API 刷新整个屏幕
protected
override
void
OnHandleDestroyed(EventArgs e)
{
//
刷新整个屏幕
bool
rVar
=
InvalidateRect(IntPtr.Zero, IntPtr.Zero,
false
);
base
.OnHandleDestroyed(e);
}
工程中还有:
设置窗口:设置文本位置、字体颜色等 相关技术:绑定配置文件,绑定config
文本更改窗口:更改文本;
不多说了:下载代码
Tag标签:
屏幕
,
屏幕绘制
,
刷新屏幕
,
绑定
,
绑定配置文件
,
屏幕绘图
,
API 调用
,
Windows API
Feedback
#1楼
回复
引用
查看
2008-05-08 15:03 by
无常
你的桌面、任务栏 真恐怖~~~~~`
#2楼
[
楼主
]
回复
引用
查看
2008-05-08 15:08 by
曲滨*銘龘鶽
@无常
我本来是 1280 的屏幕,为了抓图缩小了,要不1280 没哪么乱感觉;
特殊说明:这个版本的软件有时会在其他软件上留下残像,放心不会损害硬件;
哈哈
#3楼
[
楼主
]
回复
引用
查看
2008-05-08 15:12 by
曲滨*銘龘鶽
在说明一下:软件直接绘制屏幕,不会影响其他软件使用;
#4楼
回复
引用
查看
2008-05-08 15:25 by
狼Robot
楼主牛人。
#5楼
回复
引用
查看
2008-05-08 15:28 by
生鱼片
学习
#6楼
回复
引用
查看
2008-05-08 15:49 by
alisx
很好的学习机会 支持
#7楼
回复
引用
查看
2008-05-08 16:15 by
wit
LZ打开那么多程序为了截图吧
#8楼
回复
引用
查看
2008-05-08 16:54 by
杨正祎(阿一)
楼主的桌面那是一个乱呀~~
呵呵~~
#9楼
[
楼主
]
回复
引用
查看
2008-05-08 17:31 by
曲滨*銘龘鶽
哇大家都对我的桌面这么感兴趣 1208x1024 下其实才2-3排啊
那知道1024*769 变哪么多排;哎没变法软件装的太多了
开始菜单都好几排了;
#10楼
回复
引用
查看
2008-05-08 18:42 by
airwolf2026
俺的xp系统的主题和楼主的一样,不过俺没有哪么多乱七八糟的软件,读书的时候,倒是和楼主很像.一堆软件都有,当时连它们的安装文件都备份.在一次整理硬盘的时候,直接咔嚓掉了.哈哈,嘎嘎
#11楼
回复
引用
查看
2008-05-08 23:23 by
镜涛
呵呵,桌面是挺......
#12楼
回复
引用
2008-05-09 08:39 by
maihao [未注册用户]
楼主的盗版软件可真多,还都挺大牌。
#13楼
回复
引用
查看
2008-05-09 09:37 by
Dreaming
界面能美化一下就好了。
PS.原来都是风云迷
#14楼
[
楼主
]
回复
引用
查看
2008-05-09 19:57 by
曲滨*銘龘鶽
@Dreaming
这个程序没界面的啊?
你是说设置字体的窗口??
@maihao
你怎么知道我 “都”是盗版?? 哈哈;没办法用电脑时间太长了几乎什么软件多会些;
#15楼
回复
引用
查看
2008-05-13 14:58 by
数据绑定者
我以前也做了个类似的东东,还可以定时提醒的。
提点建议
可能绘制屏幕那里还要优化一下
现在平均占用8%左右的CPU,28M左右的内存。
配置窗口增加个保存按钮,需要用户确认的时候最好有取消按钮,因为可能想返回重新修改。
拙见,见笑
#16楼
[
楼主
]
回复
引用
查看
2008-06-25 01:57 by
曲滨*銘龘鶽
@数据绑定者
我这里是 1% 0% 啊
难道我计算机太好,我看看那里有问题;
#17楼
回复
引用
2008-07-18 10:21 by
guoshou [未注册用户]
你好:
你的小软件我下栽,并有所改进.但还有一些小问题,
请联系.itgoogle@sina.com
社区
新闻
新用户注册
刷新评论列表
标题
姓名
主页
Email
(只有博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2008-05-08 14:59 编辑过
另存
打印
所属分类的其他文章:
·
C# 直接执行、调用本机代码、汇编代码 shell Native Code
·
OneDay “屏幕任务”小软件 TaskScreen_080408
最新IT新闻:
·
Mozilla将于本周五发布Firefox 3.1第一个预览版
·
瑞星将向个人用户免费1年
·
中国互联网历史上最伟大的产品TOP10(二)
·
盖茨官方否认天价租楼看奥运 纯属地产商炒作
·
2008年7月24日IT博客精选
博客园新闻频道
博客园首页
社区
Powered by:
博客园
Copyright © 曲滨*銘龘鶽
日历
<
2008年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
公告
上图为我和老婆的照片 以免搞错了
个人专注研究各种于编程有关的东西
个人简介
姓名
曲滨
联系方法
在blog title 上
特长
编程
做过项目语言或开发工具 C#,VC,Delphi(6.0 以后没用过了),PB 很久不用了,java 1.3 以后没用过
美术
我会画图不是做图
生日:
1977-03-06
开始学习编程:
199X 年的某一天
备注::
本人沈阳人、念过点书也是混的所以在文章上有错别字也没办法请大家原谅
与我互动
给我发短消息
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
(15)
给我留言
查看私人留言
我参加的小组
沈阳.NET俱乐部
我参与的团队
沈阳.NET俱乐部(1/245)
我的标签
API(2)
限制输入(1)
下拉框(1)
readonly(1)
只读(1)
GetWindow(1)
EM_SETREADONLY(1)
命令行(1)
控制台(1)
winForm调用控制台(1)
更多
随笔分类
.net 基础类库实列(2)
OneDay 小软件(2)
Web UI 界面(2)
Windows Workflow Foundation (WF)(3)
windows 系统调用(5)
其他(9)
数据库相关(2)
桌面应用界面UI
随笔档案
2008年7月 (2)
2008年6月 (1)
2008年5月 (4)
2007年7月 (1)
2007年6月 (2)
2007年4月 (2)
2006年12月 (2)
2006年11月 (3)
2006年10月 (7)
文章分类
Web 界面
Windows Workflow Foundation (WF)(3)
windows 界面
Windows 系统调用
网友连接
Nina MM 的博客 | .net BI
飞扬旋律 MM 的博客
蛙蛙池塘 | 蛙蛙池塘
赵瀛|天堂向左我向右
我的其他博客
CSDN | 我的博客
搜索
积分与排名
积分 - 68563
排名 - 560
最新评论
1. re: 用禅宗理解、软件开发的境界
学习,学习!
--Jason Wang
2. re: 设计模式学习:Model View Presenter (MVP)
好好学习下。
--傲然林
3. re: 如何:在 Winform 动态启动、控制台命令行?
奥运火炬没往浑南跑,害得17号我们还得上班。19号在大连跑,单位派我五点起来用我们开发的监控系统进行监控。哎!
量中华之物力,结与国之欢心!
--庄严
4. re: OneDay “屏幕任务”小软件 TaskScreen_080408
你好:
你的小软件我下栽,并有所改进.但还有一些小问题,
请联系.itgoogle@sina.com
--guoshou
5. re: 如何:在 Winform 动态启动、控制台命令行?
@G yc {Son of VB.NET} 这个东西适合的场景不是你说的那些地方; 调试窗口还要多写一个窗口,而且全速度运行程序,的时候正常窗口已经死掉了,还要令启动线程、或加 ,来控制那个调试窗口 ...
--曲滨*銘龘鶽
阅读排行榜
1. Enterprise Library 2006,Data Access Application Block 精简增强版(3346)
2. SqlServer2000 DTS 向导 SP4,简体中文绿色版 (beta 1.0.0.1)(3067)
3. 微软讲座WebCast.20060907To20061213.下载列表(2654)
4. 页面布局 "HTML 4.0 Transitional” VS "XHTML 1.0 Transitional" 新的不一定就好用!(2512)
5. C# 直接执行、调用本机代码、汇编代码 shell Native Code (2043)
评论排行榜
1. 用禅宗理解、软件开发的境界(26)
2. 微软讲座WebCast.20060907To20061213.下载列表(24)
3. 适合编程开发用的"宋体"和"新宋体"(21)
4. C# 直接执行、调用本机代码、汇编代码 shell Native Code (19)
5. 如何:在 Winform 动态启动、控制台命令行?(17)