WindowsService教程(一)建立呼叫

2021-08-30 02:16:38 字數 2550 閱讀 8766

windowsservice,比較淺顯的理解就是放於後台跑的應用程式,像我們pc,其實都跑著很多後台程式,我們可能都不知道,因此我認為這是對於一些經常性重複性處理,用它非常合適,比如從資料庫不斷寫資料,寫個應用放於桌面上跑,一不小心還可能被關掉,安全性美觀性都會大大降低。

在寫服務的時候不可避免的入過某些坑,對於一些定時性處理任務,我覺得用服務不如用windows自帶的任務計畫程式,可以選擇啟動的時間點,迴圈的週期,windows10在所用應用裡面的windows管理工具裡面,具體用法也很簡單,別忘記新增.exe。

(一)建立

新建專案——windows——windows服務。在解決方案資源管理器中找到窗體設計檔案*.cs,做如下操作:

新增安裝程式後會出現,projectinstaller.cs會出現兩個服務安裝器,如下:

進行到這裡服務已經建立成功,現在我們在裡面寫內容:

public partial class service1 : servicebase

protected override void onstart(string args)

}protected override void onstop()

}protected override void onpause()

protected override void oncontinue()

protected override void onshutdown()

}

服務寫好了,我們需要把它註冊到pc中,我們可以選擇cmd敲命令,也可以用指令碼安裝,出於程式化考慮,我用的是指令碼.bat,但無論哪種,我們都需要使用微軟提供的安裝器installutil.exe。

cd c:

cd c:\users\pc-yang\desktop\autowindowsservice\atuowindowsservice\serviceclient\bin\service

installutil.exe atuowindowsservice.exe

net start winserver

pause

cd c:

cd c:\users\pc-yang\desktop\autowindowsservice\atuowindowsservice\serviceclient\bin\service

installutil.exe /u atuowindowsservice.exe

pause

(二)呼叫

我用的是本地客戶端呼叫,當然web網頁也能調。我寫了4個按鈕如下,分別為:安裝、啟動、停止、解除安裝服務,其實還有暫停和恢復,跟啟動停止區別應該是否退出程序,有興趣的可以去深挖一下。

//生成上面安裝/解除安裝指令碼

private void form1_load(object sender, eventargs e)

using (system.io.streamwriter sw = new system.io.streamwriter(system.environment.currentdirectory + "\\service\\uninstall.bat", false))

}

//安裝服務

private void setup_click(object sender, eventargs e)

else

}catch(exception ex)

}

//解除安裝服務

private void uinstal_click(object sender, eventargs e)

else

}catch(exception ex)

}

//恢復服務

private void startup_click(object sender, eventargs e)

else

}else

}catch(exception ex)

}

//停止服務

private void stop_click(object sender, eventargs e)

else

;messagebox.show("服務停止成功!");}}

else

}catch(exception ex)

}

總結

1.除錯windowsservice服務我們可以借助事件檢視器的錯誤來幫助甄判服務的一些操作錯誤。

2.安裝和解除安裝(即install.bat和uninstall.bat)都需要管理員許可權才能正確安裝,那麼我們呼叫程式一定要是管理員許可權執行,可以通過給專案新增應用程式清單檔案,修改裡面的level為   ,程式執行就是以管理員許可權。

windowsservice建立心得

1,新建乙個windows服務為 filetranceservice,2,新增timer,該timer是 system.timers,注意 看看這個 timer 控制項的屬性中的命名空間是什麼 如果是 system.timers.timer 那就對了 如果是 system.windows.froms...

Windows Service學習筆記

windows服務程式是windows作業系統下能完成特定功能的可執行程式。它適合需要長時間執行的功能使用。建立完成後,看到如下圖所示 將service1的名稱改成你需要的名稱,例如 helloservice 修改安裝服務名稱 修改安裝許可權 完成上面的步驟後,就可以開始我們的程式啦。主要使用到on...

Windows Service獲取執行目錄的方法

一般獲取目錄方法 首先要弄清你對 當前目錄 current directory 的定義是什麼。工作目錄 你的應用程式正在哪個目錄下工作。這個目錄並不一定是exe檔案所在的目錄,而且在程式執行中是可以改變的。system.io.directory類提供了getcurrentdirectory方法,該方...