亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

使用C#自己制作字幕屏幕保護程序

2023-05-14 16:26:29
字體:
來源:轉載
供稿:網友

屏幕保護程序的擴展名雖然是"scr",但其實是一個可執行的"exe"文件。但他又是一個比較獨特的"exe"文件。下面就來探討一下,用C#是如何編寫屏幕保護的整個過程。

1、本文中介紹的程序設計及運行環境

(1)微軟視窗2000 服務器版

(2).Net Framework SDK 正式版

2、關鍵步驟

(1)設定程序的窗體符合屏幕保護的要求:

屏幕保護有自身的特點。譬如:屏幕保護都是充滿整個屏幕的,并且沒有無邊。屏幕保護運行的時候,不能顯示任務欄。在程序設計中實現這些特點,關鍵就在于對窗體的某些屬性的設定上。下面是對窗體屬性的設定,就可以滿足屏幕保護的要求,具體如下:

this.Name = "ScreenSaver" ;

//窗體運行后無邊界
        this.FormBorderStyle = FormBorderStyle.None ;

//程序運行后不顯示在任務欄上
        this.ShowInTaskbar = false ;

//窗體運行后,最大化,充滿整個屏幕
        this.windowstate=FormWindowState.Maximized;

(2)使得字符在屏幕上不斷移動

通過一個定時器來完成字符移動。使用Label控件顯示字符。定時器每隔一段時間,都把Label組件的橫坐標減去一個定值,這樣在定時器的驅動下,Label組件的位置就變換了,帶來的視覺效果,就是字符不斷移動。

當Label組件的位置已經移動到屏幕的外面以后,這是就有把Label組件的橫坐標回復到起始值(即:屏幕的最右邊),然后判斷Label組件的縱坐標是否位于屏幕的頂部,如果在頂部,則把縱坐標的位置重置在中部;如果在中部,則重置在底部;如果在底部,則重置在頂部。經過了這些判斷,字符不僅可以實現從右往左移動,還可以變換字符進入屏幕的位置。從而也豐富了屏幕保護的內容。其實要實現這些判斷,首先還必須知道屏幕的工作區域,因為只有先知道屏幕的工作區域,在能夠實現對Label組件的橫坐標和縱坐標的設定工作。下面就是實現此步驟地具體代碼:

//得到計算機屏幕的工作區域
        Rectangle ssWorkArea = Screen.GetWorkingArea ( this ) ;
        lblMarquee.Location = new Point ( ssWorkArea.Width - iDistance ,
        lblMarquee.Location.Y ) ;

//顯示標簽
        lblMarquee.Visible = true ;
        // 增加2個象素點,你可以通過修改speed的值來改變標簽的移動速度
        iDistance += speed ;
        // 如果標簽已經走出屏幕,則把標簽的位置重定位到屏幕的右邊
        if ( lblMarquee.Location.X <= -( lblMarquee.Width ) )
        {
                //Reset the distance to 0.
                iDistance = 0 ;
                //判斷標簽的位置是否在頂部,如果在,則重定位到中部
                if ( lblMarquee.Location.Y == 0)
                        lblMarquee.Location = new Point ( lblMarquee.Location.X , ( ssWorkArea.Height / 2 ) ) ;
                        //判斷標簽的位置是否在中部,如果在,則重定位到底部 
                else if ( lblMarquee.Location.Y == ssWorkArea.Height / 2 )
                        lblMarquee.Location = new Point ( lblMarquee.Location.X , ssWorkArea.Height - lblMarquee.Height ) ;//重定位到頂部 
                else
                        lblMarquee.Location = new Point ( lblMarquee.Location.X , 0 ) ;
        }

(3)檢測鍵盤、鼠標狀態,確定退出屏幕保護程序:

在屏幕保護運行的時候,當鍵盤被按動,或者鼠標移動,屏幕保護都會關閉。在實際的程序設計中,檢測鍵盤是否被按動,通過"KeyDown"事件就可以判斷。在程序中,判斷鼠標是否移動的思路是通過二個全局變量記錄下,程序剛剛運行的時候的鼠標的位置(即:X和Y),當鼠標移動的時候,判斷移動后的位置和記錄的位置是否有出入,如果有出入,就關閉屏保。下面代碼功能就是檢測鼠標移動,并結束屏幕保護,具體如下:

// 把鼠標剛剛開始移動的位置給記錄下來
        if ( ixStart == 0 && iyStart == 0 )
        {
                ixStart = e.X ;
                iyStart = e.Y ;
                return ;
        }
        //判斷自屏幕保護程序運行后,鼠標的位置是否變動
        else if ( e.X != ixStart || e.Y != iyStart )
        {
                Cursor .Show ( ) ; 
                timerSaver.Enabled = false ;
                Application .Exit ( ) ;
        }

其中"ixStar"和"iyStart"就是記錄程序運行的時候,鼠標的起始位置。

(4)對Windows對屏幕保護設定參數的響應:

當屏幕保護加入到Windows系統后,你就可以通過Windows系統來設定屏幕保護的屬性了,由于我們制作的這個屏幕保護,沒有可供設置的選項,但也要對Windows的"設置"按鈕進行響應。而要完成這種響應,所用的知識就是在Windows系統中按動"設置"按鈕,對屏幕保護進行設定時,其實也就對屏保程序傳遞"/c"字符。而要設定口令,則會傳遞"/a"字符,據此,可以得到代碼:

if (args [ 0 ].Substring ( 0 , 2 ).Equals ( "/c" ) )
        {
                MessageBox.Show("此屏幕保護沒有可供設置的選項!","用C#制造屏幕保護" ,
                MessageBoxButtons.OK ,MessageBoxIcon.Information ) ;
                Application.Exit ( ) ;
        }
        else if ( args [ 0 ] == "/a" )
        {
                MessageBox.Show("此屏幕保護沒有可供設定口令的選項!","用C#制造屏幕保護" ,
                MessageBoxButtons.OK ,MessageBoxIcon.Information ) ;
                Application.Exit ( ) ;
        }

3、總結

由于屏幕保護都是Windows程序,所以編譯的時候,要產生Windows程序,編譯的ming令如下:

csc /t:winexe screen.cs

在正確編譯"Screen.cs"后,可以得到"Screen.exe"文件,把"Screen.exe"改名為"Screen.scr",并拷貝到Windows的"System32"目錄中去。至此這個字符屏保就完成了從編寫到配置的全部工作了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久97精品久久久久久久不卡| 亚洲第一页自拍| 久久九九精品99国产精品| 久久久免费精品| 中文字幕日韩视频| 欧美激情一二区| 美女精品久久久| 亚洲精品电影久久久| 国产中文字幕亚洲| 亚洲天堂色网站| 91超碰caoporn97人人| 亚洲va国产va天堂va久久| 日韩久久免费视频| y97精品国产97久久久久久| 亚洲最大福利网站| 这里只有精品久久| 国产成人福利视频| 亚洲大胆美女视频| 自拍亚洲一区欧美另类| 精品国内亚洲在观看18黄| 国产91在线视频| 九九热这里只有精品免费看| 精品国产乱码久久久久酒店| 欧美日韩国产一区中文午夜| 久久久噜久噜久久综合| 91欧美精品成人综合在线观看| 在线视频亚洲欧美| 欧美黄色小视频| 97在线免费观看视频| 日韩69视频在线观看| 亚洲视频电影图片偷拍一区| 中文字幕亚洲一区在线观看| 日本久久久久久久久| 欧美大片免费观看| 国产亚洲精品高潮| 亚洲久久久久久久久久久| 色一区av在线| 国产视频精品免费播放| 国产成人欧美在线观看| 中文字幕在线看视频国产欧美在线看完整| 国产97人人超碰caoprom| 亚洲美女性生活视频| 亚洲人成网站在线播| 91sao在线观看国产| 国产亚洲精品久久久优势| 久久久精品亚洲| 成人字幕网zmw| 国产精品电影在线观看| 欧洲亚洲免费视频| 国产日韩在线看| 久久精品视频中文字幕| 91久久久久久久| 中文字幕国产亚洲2019| 日韩av在线免费| 亚洲精品国偷自产在线99热| 欧美激情精品久久久久| 高清欧美性猛交xxxx| 最新的欧美黄色| 精品国产乱码久久久久酒店| 欧美理论在线观看| 国产精品美女免费视频| 欧美在线观看一区二区三区| 最新国产精品亚洲| 91影视免费在线观看| 日韩成人在线视频| 中文字幕欧美亚洲| 91视频九色网站| 日韩中文字幕在线视频| 亚洲精品网站在线播放gif| 91产国在线观看动作片喷水| 日韩欧美精品中文字幕| 欧美日韩xxx| 中文字幕亚洲无线码在线一区| 在线观看不卡av| 91欧美精品午夜性色福利在线| 茄子视频成人在线| 日韩在线中文视频| 国产中文字幕91| 国产丝袜一区二区三区免费视频| 最近2019中文字幕一页二页| 欧美最猛性xxxxx免费| 国产精品免费一区| 亚洲影视九九影院在线观看| 深夜福利亚洲导航| 91精品国产高清久久久久久91| 欧美成人精品在线观看| 欧美激情a∨在线视频播放| 国产精品第8页| 亚洲精品成人网| 亚洲成年人影院在线| 久久久久久久久爱| 日韩资源在线观看| 欧美激情久久久久| 中文字幕日韩精品在线观看| 两个人的视频www国产精品| 国产精品欧美日韩久久| 欧美一区二区三区精品电影| 国产精品va在线播放我和闺蜜| 久久伊人免费视频| 亚洲欧美中文日韩在线v日本| 92国产精品久久久久首页| 亚洲男人天堂网| 欧美成人精品影院| 韩国v欧美v日本v亚洲| 成人自拍性视频| 精品久久在线播放| 欧美黑人巨大xxx极品| 国产欧美婷婷中文| 日韩免费av一区二区| 亚洲欧美日韩国产精品| 啪一啪鲁一鲁2019在线视频| 国产mv免费观看入口亚洲| 国产一区二区丝袜高跟鞋图片| 国产一区视频在线| 一区二区三区视频免费在线观看| 国产精品美乳一区二区免费| 亚洲精品99久久久久中文字幕| 亚洲成人av在线| 欧美丰满少妇xxxx| 亚洲iv一区二区三区| 92版电视剧仙鹤神针在线观看| 成人字幕网zmw| 久久亚洲电影天堂| 成人av电影天堂| 人人做人人澡人人爽欧美| 在线视频一区二区| 国产精品久久久久久久久久尿| 亚洲欧洲一区二区三区在线观看| 中文字幕在线国产精品| 国产亚洲精品美女久久久| 欧美激情视频一区二区三区不卡| 国内精品伊人久久| 国产精品久久97| 欧美激情视频给我| 亚洲最新av网址| 国产激情综合五月久久| 91久久久久久久久久| 亚洲成色999久久网站| 88国产精品欧美一区二区三区| 成人黄色网免费| 成人黄色在线观看| 韩国一区二区电影| 久久精品成人欧美大片| 亚洲四色影视在线观看| 久久国产精品首页| 欧美亚洲国产另类| 在线播放亚洲激情| 国产欧美一区二区| 欧美成人免费网| 亚洲老头同性xxxxx| 91免费精品国偷自产在线| 亚洲精品欧美一区二区三区| 亚洲性日韩精品一区二区| 久久久亚洲欧洲日产国码aⅴ| 久久久国产精品亚洲一区| 66m—66摸成人免费视频| 青青草原成人在线视频| 亚洲免费一级电影| 日本久久久久久久| 美女久久久久久久久久久| 成人免费视频97| 欧美性极品xxxx做受| 午夜精品一区二区三区在线视| 久久全球大尺度高清视频|