偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

概括VB.NET OnStart處理方法

開發(fā) 后端
這里介紹VB.NET OnStart處理方法,Windows服務(wù),是一些長久運(yùn)行的程序,而并不需要依靠登錄用戶或客戶程序來保持它的運(yùn)行。

VB.NET還是比較常用的,于是我研究了一下VB.NET OnStart處理方法,在這里拿出來和大家分享一下,希望對大家有用

有時(shí)候,處于業(yè)務(wù)的需要,我們要不斷的監(jiān)視文件的變化,比如文件的創(chuàng)建、刪除、重命名等;而且某些人要確保重要文件的只讀,并且要及時(shí)的報(bào)告文件版本的變更情況。或者,你想監(jiān)視你的文件夾被別人更改、肆意刪除而又不知道是誰干的,在什么時(shí)候干的?于是你就考慮要寫一個(gè)監(jiān)視程序,“偷偷的”記錄文件夾被操作的情況。

有些人采取常規(guī)的方式,即寫一個(gè)桌面應(yīng)用程序,其界面可能是隱藏的。采用每隔一個(gè)事件片段讀取文件信息,然后寫到一個(gè)log文件中。然后設(shè)置系統(tǒng)啟動(dòng)的事件自動(dòng)加載程序,(好像很多人是這樣竊取QQ密碼的:)。其缺點(diǎn):
1、不是連續(xù)的獲取信息,因?yàn)樗麄儾捎昧?Timer的tick事件;
2、在NT系統(tǒng)中,可能要一定的權(quán)限才可以運(yùn)行,比如要管理員身份等。還有系統(tǒng)中會(huì)有進(jìn)程顯示,顯然很容易shut down.

我們建議的方案:采用.NET的Windows Service。首先可以克服以上缺點(diǎn),而且較VB6的編程而言,.NET中寫windows service一如反掌。

思路:在.NET創(chuàng)建的服務(wù)中調(diào)用System.IO.FileSystemWatcher對象,每次被監(jiān)視的文件或者文件夾變化的時(shí)候,調(diào)用IO系統(tǒng)的FileStream和StreamWriter把變更信息寫到log文件中。

Windows服務(wù),是一些長久運(yùn)行的程序,而并不需要依靠登錄用戶或客戶程序來保持它的運(yùn)行。它們沒有自己的用戶界面,可以在它們自己獨(dú)有的安全級別和會(huì)話上下文中運(yùn)行。我們比較熟悉的Windows服務(wù)范例包含了從打印池到SQL服務(wù)器以及它的分布式事務(wù)協(xié)作(DTC)。服務(wù)只可以運(yùn)行在NT、2000以及后繼產(chǎn)品比如XP下運(yùn)行,它們通過Microsoft Management Console (MMC)提供了一個(gè)專門的管理界面(開始->運(yùn)行->Services.msc)。

在.NET中創(chuàng)建項(xiàng)目的時(shí)候,有一個(gè)Windows服務(wù)的模板,選擇新建。這個(gè)操作自動(dòng)為我建立了一個(gè)新的類,它是繼承了.NET內(nèi)建了System.ServiceProcess.ServiceBase類。同時(shí)它提供給我一個(gè)可視化的設(shè)計(jì)器,一個(gè)圖形化的快速開發(fā)工具,它特別的為那些本身沒有用戶界面的工程。我可以點(diǎn)擊這個(gè)設(shè)計(jì)器,設(shè)定我的服務(wù)的名字(我命名為"File Watching")。

當(dāng)啟動(dòng)某項(xiàng)服務(wù)時(shí),系統(tǒng)將定位相應(yīng)的可執(zhí)行文件,并運(yùn)行該服務(wù)的 VB.NET OnStart處理方法(它包含在可執(zhí)行文件內(nèi))。但是,運(yùn)行服務(wù)與運(yùn)行可執(zhí)行文件并不相同。可執(zhí)行文件僅加載服務(wù)。服務(wù)則通過“服務(wù)控制管理器”訪問(例如啟動(dòng)和停止)。

當(dāng)***在服務(wù)上調(diào)用“開始”時(shí),可執(zhí)行文件將調(diào)用 ServiceBase 派生類的構(gòu)造函數(shù)。在構(gòu)造函數(shù)執(zhí)行之后將立即調(diào)用 VB.NET OnStart處理方法。在服務(wù)***加載之后,構(gòu)造函數(shù)不會(huì)再次執(zhí)行,因此有必要將構(gòu)造函數(shù)執(zhí)行的處理和 OnStart執(zhí)行方法的處理分開??梢杂?OnStop 釋放的任何資源都應(yīng)在 OnStart 中創(chuàng)建。如果服務(wù)在 OnStop 釋放資源后再次啟動(dòng),那么,在構(gòu)造函數(shù)中創(chuàng)建資源會(huì)妨礙這些資源的正確創(chuàng)建。

“服務(wù)控制管理器”(SCM) 提供與服務(wù)交互的方式,可以使用 SCM 將“開始”(Start)、“停止”(Stop)、“暫停”(Pause)、“繼續(xù)”(Continue) 或自定義命令傳遞到服務(wù)中。SCM 使用 CanStop 和 CanPauseAndContinue 的值,決定服務(wù)是否接受“停止”、“暫?!被颉袄^續(xù)”命令。僅當(dāng)服務(wù)類中相應(yīng)的屬性 CanStop 或 CanPauseAndContinue 為 true 時(shí),才會(huì)在 SCM 的上下文菜單中啟用“停止”、“暫?!被颉袄^續(xù)”。如果已啟用,則相應(yīng)的命令將傳遞到服務(wù),并且調(diào)用 OnStop、OnPause 或 OnContinue。如果 CanStop、CanShutdown 或 CanPauseAndContinue 為 false,則即使已實(shí)現(xiàn)相應(yīng)的命令處理方法(如 OnStop),也不會(huì)予以處理。

【編輯推薦】

  1. 全面描述VB.NET字節(jié)數(shù)組
  2. 詳解VB6.0和VB.NET窗體的區(qū)別
  3. VB.NET編碼算法學(xué)習(xí)筆記
  4. 簡單概括VB.NET數(shù)據(jù)綁定
  5. 深入解析VB.NET創(chuàng)建表示層
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-11-03 10:00:20

VB.NET New方

2009-11-03 10:51:33

VB.NET共享

2009-10-27 11:32:42

VB.NET Disp

2009-10-14 14:04:29

VB.NET創(chuàng)建Web

2009-10-13 14:50:59

VB.NET Envi

2009-10-26 15:57:07

VB.NET使用Ora

2009-10-15 17:50:48

VB.NET Spli

2009-10-14 10:19:57

VB.NET Doma

2009-10-28 10:51:32

VB.NET默認(rèn)屬性

2009-10-14 13:15:09

VB.NET數(shù)據(jù)綁定

2009-10-14 15:34:29

VB.NET窗體編程模

2009-10-23 14:06:07

VB.NET類對象

2009-10-21 10:05:30

VB.NET運(yùn)行環(huán)境

2009-10-27 10:30:18

VB.NET實(shí)現(xiàn)動(dòng)態(tài)菜

2009-11-02 13:07:26

VB.NET OPEN

2009-11-02 09:21:04

VB.NET文件系統(tǒng)

2009-11-02 17:49:05

VB.NET抽象類

2009-10-29 16:23:42

VB.NET實(shí)現(xiàn)IEn

2009-10-28 14:44:43

VB.NET Name

2009-10-29 10:04:57

VB.NET Read
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號