軟體沒什麼就是,花點時間寫點代碼省的手生;特此建立 “OneDay 小軟體”個人分類,都是一些一天左右可以做出來的東西、主要為了系統練習一些技術,
軟體都是半成品,各位看管不要挑剔就好;代碼可以拿去隨便用,如果您從My Code中學習到了東西或找到了靈感來這裡說聲謝謝或頂一下就好了。
軟體:
點擊看大圖
紅色的字就是軟體的效果了、工作列中 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 -> 向螢幕上寫字 -> 釋放繪圖控制代碼 ReleaseDCprivate 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
文本更改視窗:更改文本;
不多說了:下載代碼