螢幕保護程式的副檔名雖然是"scr",但其實是乙個可執行的"exe"檔案。但他又是乙個比較獨特的"exe"檔案。下面就來**一下,用c#是如何編寫螢幕保護的整個過程。
二.c#編寫字幕顯示屏保程式的關鍵步驟以及解決方法:
(1)設定程式的窗體符合螢幕保護的要求:
由於螢幕保護程式就是乙個可執行程式,所以在編寫螢幕保護程式的時候,首先按照可執行程式來設計。但螢幕保護有自身的特點。譬如:螢幕保護都是充滿
整個螢幕的,並且沒有無邊。螢幕保護執行的時候,不能顯示工作列。在程式設計中實現這些特點,關鍵就在於對窗體的某些屬性的設定上。下面是對窗體屬性的
設定,就可以滿足螢幕保護的要求,具體如下:
複製** **如下:
this.name = "screens**er" ;
//窗體執行後無邊界
this.formborderstyle = formborderstyle.none ;
//程式執行後不顯示在工作列上
this.showintaskbar = false ;
//窗體執行後,最大化,充滿整個螢幕
(2)使得字元在螢幕上不斷移動:
實現字元在螢幕上像字元屏保一樣不斷移動,是通過乙個定時器來完成的。不斷移動的字元,其實就是乙個label元件。當設定好label元件要顯示的字元後,
也就xsxpaqcrbx設定了在螢幕上要移動的字元。定時器每隔一段時間,都把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 ) )
(3)檢測鍵盤、滑鼠狀態,確定退出螢幕保護程式:
在螢幕保護執行的時候,當鍵盤被按動,或者滑鼠移動,螢幕保護都會關閉。在實際的程式設計中,檢測鍵盤是否被按動,通過"keydown"事件就可以判斷。在
程式中,判斷滑鼠是否移動的思路是通過二個全域性變數記錄下,程式剛剛執行的時候的滑鼠的位置(即:x和y),當滑鼠移動的時候,判斷移動後的位置和記錄的
位置是否有出入,如果有出入,就關閉屏保。下面**功能就是檢測滑鼠移動,並結束螢幕保護,具體如下:
複製** **如下:
// 把滑鼠剛剛開始移動的位置給記錄下來
if ( ixstart == 0 && iystart == 0 )
//判斷自螢幕保護程式執行後,滑鼠的位置是否變動
else if ( e.x != ixstart || e.y != iystart )
;其中"ixstar"和"iystart"就是記錄程式執行的時候,滑鼠的起始位置。
(4).對windows對螢幕保護設定引數的響應:
當螢幕保護加入到windows系統後,你就可以通過windows系統來設定螢幕保護的屬性了,由於我們製作的這個螢幕保護,沒有可供設定的選項,但也要對
windows的"設定"按鈕進行響應。而要完成這種響應,所用的知識就是在windows系統中按動"設定"按鈕,對螢幕保護進行設定時,其實也就對屏保程式傳遞"/c"字
符。而要設定口令,則會傳遞"/a"字元,據此,可以得到**:
複製** **如下:
if (args [ 0 ].substring ( 0 , 2 ).equals ( "/c" ) )
else if ( args [ 0 ] == "/a" )
三.總結:
由於螢幕保護都是windows程式,所以編譯的時候,要產生windows程式,編譯的命令如下:
csc /t:winexe screen.cs
在正確編譯"screen.cs"後,可以得到"screen.exe"檔案,把"screen.exe"改名為"screen.scr",並拷貝到windows的"system32"目錄中去。至此這個字元屏保
就完成了從編寫到配置的全部工作了。
本文標題: c#製作螢幕保護程式步驟(字幕屏保)
本文位址: /ruanjian/csharp/103810.html
4 2 2 螢幕保護程式
依次選擇 系統 首選項 螢幕保護程式 命令開啟 螢幕保護程式首選項 對話方塊,如圖 4.10 所示。要開啟螢幕保護功能,應該確保在 計算機空閒時啟用螢幕保護程式 核取方塊中打鉤。在左側的 主題 列表框中選擇相應的屏保主題,就可以在右側的預覽框中看到效果。ubuntu 附帶了很多螢幕保護主題,其中一些...
Window許可權維持(五) 螢幕保護程式
web安全 bypass007 2019 12 04 10,068 螢幕保護是windows功能的一部分,使使用者可以在一段時間不活動後放置螢幕訊息或圖形動畫。眾所周知,windows的此功能被威脅參與者濫用為永續性方法。這是因為螢幕保護程式是具有.scr副檔名的可執行檔案,並通過scrns e.s...
中斷Java ME手機上的螢幕保護程式
如果你的j2me應用程式不要求使用者連續按鍵,那麼在sonyericsson的手機上執行的程式,可能一段時間之後就會出現螢幕保護介面,這是手機自帶的功能。但是我們可以通過nokia ui api來設定背景燈來阻止螢幕保護介面。但是持續讓背景燈開啟會消耗更多的電量。請注意 對於uiq3的手機,例如w9...