惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
C
CXSECURITY Database RSS Feed - CXSecurity.com
V
Visual Studio Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
小众软件
小众软件
L
LangChain Blog
Cyberwarzone
Cyberwarzone
美团技术团队
The Register - Security
The Register - Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tor Project blog
V
V2EX
Security Archives - TechRepublic
Security Archives - TechRepublic
Hacker News: Ask HN
Hacker News: Ask HN
L
LINUX DO - 最新话题
Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
aimingoo的专栏
aimingoo的专栏
人人都是产品经理
人人都是产品经理
F
Full Disclosure
V2EX - 技术
V2EX - 技术
The Cloudflare Blog
博客园 - 叶小钗
T
Threat Research - Cisco Blogs
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Latest news
Latest news
S
Security @ Cisco Blogs
Spread Privacy
Spread Privacy
Project Zero
Project Zero
K
Kaspersky official blog
MyScale Blog
MyScale Blog
Attack and Defense Labs
Attack and Defense Labs
云风的 BLOG
云风的 BLOG
博客园 - 【当耐特】
Hacker News - Newest:
Hacker News - Newest: "LLM"
大猫的无限游戏
大猫的无限游戏
P
Privacy International News Feed
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
C
Cybersecurity and Infrastructure Security Agency CISA
Webroot Blog
Webroot Blog
罗磊的独立博客
Vercel News
Vercel News
N
News and Events Feed by Topic
A
Arctic Wolf
C
CERT Recently Published Vulnerability Notes

博客园 - 曲滨*銘龘鶽

IE8 隐藏命令行参数 学习 ASP.NET mvc 第一天、也可能是最后一天 Visual Studio 2008 开启被遗忘的 “同步类视图”功能、附带一个MSDN 的 bug 实战 IE8 开发人员工具 windows 桌面开发 - 子类化控件(不用任何WinAPI),演示拦截Button的WM_LBUTTONDBLCLK 在真实项目中使用第三方或开源代的代码,组件,中间件,框架的基本规则 你有?项目设计开发阶段,甲方经常的要求看程序,而经常在做【假界面】【假程序】的情况吗? Windows Live Writer 测试 文档共享:罗斯文2007 (Northwind 2007),数据库文件,中文版本、英文版、英文表结构中文数据版 本机 MSDN Sorry, no topics were found for the selected link 问题,及临时解决方案 2008-9-6 文档共享:罗斯文2007 (Northwind 2007),数据库,微软最新的 Access 2007 样列数据库分析(中文/英文) C# 操作 XML 数据库类型、Oracle XMLType IE7,ie8说爱你不容易,企业应用困局 如何:在 Winform 动态启动、控制台命令行? 如何:使 comboBox 输入状态变成 readonly 方式;TextBox 只读时的效果; 设计模式学习:Model View Presenter (MVP) C# 直接执行、调用本机代码、汇编代码 shell Native Code Oracle 使用数据泵 expdp impdp 导入导出数据库“表空间”文件 适合编程开发用的"宋体"和"新宋体"
OneDay “屏幕任务”小软件 TaskScreen_080408
曲滨*銘龘鶽 · 2008-05-08 · via 博客园 - 曲滨*銘龘鶽

     软件没什么就是,花点时间写点代码省的手生;特此建立 “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
   文本更改窗口:更改文本;

不多说了:下载代码