程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#制造簡易的屏保

C#制造簡易的屏保

編輯:C#入門知識

C#制造簡易的屏保。本站提示廣大學習愛好者:(C#制造簡易的屏保)文章只能為提供參考,不一定能成為您想要的結果。以下是C#制造簡易的屏保正文


前言:前段時間,有個網友問我C#制造屏保的問題,我霎時懵逼了(C#還可以制造屏保!)。於是我去查閱相關材料,上面把C#如何制造屏保的進程及我學習進程的心得也記載上去,希望對需求的人能有協助。

根本思緒:

1)屏保運轉起來是一個整個屏幕且無邊框的窗體,不能顯示義務欄,鼠標點擊就會加入。當然你還可以在界面上自定義一些東西,如顯示零碎時間,屏保外面顯示Rss內容等。

2)屏幕維護順序的擴展名雖然是".scr",但實質是一個可執行的".exe"文件。

詳細步驟:

翻開Visual Studio 2012,樹立一個windows項目,取名為MyScreenSaver,並添加一個windows 窗體,取名為FrmMyScr。

設置FrmMyScr的AutoScaleMode屬性為Font,BackColor屬性為White,ForeColor屬性為ControlText,FormBoderStyle屬性為None,ShowInTaskbar屬性為False,WindowState屬性為Maximized。

重點:接上去給FrmMyScr添加背景圖片。設置FrmMyScr的BackGroundImage屬性值如桌面上的bgrdImg.jpg" />

接上去,為窗體編寫相關事情代碼:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Reflection;
using System.IO;

namespace MyScreenSaver
{
 public partial class FrmMyScr : Form
 {
 public FrmMyScr()
 {
  InitializeComponent();
  this.DoubleBuffered = true;//設置本窗體
  SetStyle(ControlStyles.UserPaint, true);
  SetStyle(ControlStyles.AllPaintingInWmPaint, true);
  SetStyle(ControlStyles.DoubleBuffer, true);
 }
 Timer NowTime = new Timer();

 private void FrmMyScr_Load(object sender, EventArgs e)
 {
  Assembly asm = this.GetType().Assembly;
  Stream stream = asm.GetManifestResourceStream("MyScreenSaver.Resources.BgrdImg.jpg");
  this.BackgroundImage = new Bitmap(stream);

  this.Click += new System.EventHandler(Exit);
  this.BackColor = System.Drawing.Color.White;
  this.lblTimeNow.Location = new System.Drawing.Point((this.Size.Width / 10), this.Size.Height / 5 * 4);

  NowTime.Interval = 10;
  this.NowTime.Tick += new System.EventHandler(LableTimeText);
  NowTime.Start();
 }

 private void Exit(object sender, EventArgs e)
 {
  Application.Exit();
 }
 private void LableTimeText(object sender, EventArgs e)
 {
  lblTimeNow.Text = DateTime.Now.ToString();
 }

 private void FrmMyScr_Deactivate(object sender, EventArgs e)
 {
  Application.Exit();
 }
 }
}

到此為止,把順序執行一下就可以看到預期的效果了。當然你還想給.exe設置個圖標,可用圖標制造工具制造一個ico圖標如favicon.ico並添加到項目根目錄,在項目右鍵屬性的“使用順序”選項卡下的“圖標和清單”欄,圖標下拉選擇favicon.ico,保管後把順序執行一下即可。

最後把bin/debug或許bin/release下的可執行順序後綴改成scr,並拷貝到零碎盤Windows的system32下。

這樣經過桌面特性化的屏幕維護順序設置一下就可以投入運用了,是不是很炫呢!趕忙試試吧!

總結:

1)我采用將背景圖片作為“嵌入的資源”的方式,將內嵌資源編譯進exe文件外面,故無需將背景圖片一同拷貝出來;否則還需將背景圖片一同拷貝出來。

2)這個項目是用VS2012創立的,默許的目的框架為.NET Framework 4.5,這樣運轉生成的可執行文件MyScreenSaver.exe及MyScreenSaver.scr文件在內部均可以正常運轉;但拷貝到C:\Windows\System32下,運轉就報錯:"This application could not be started. Do you want to view information about this issue?"

我試著將目的框架修正為.NET Framework 4,重新運轉後,MyScreenSaver.exe及MyScreenSaver.scr文件在內部均可以正常運轉,拷貝到C:\Windows\System32下運轉也沒有問題了。另外我發現目的框架為.NET Framework 2.0時也沒有問題。真是奇異!詳細緣由,筆者暫時不明所以。零碎為Windows 7 旗艦版 SP1。

源代碼:http://xiazai.jb51.net/201701/yuanma/MyScreenSaver(jb51.net).rar

參考文章:

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved