vc 搭建乙個NT服務框架

2021-08-23 13:44:13 字數 2067 閱讀 7013

#include

#include

service_status m_servicestatus;

service_status_handle m_servicestatushandle;

bool brunning=true;

void winapi servicemain(dword argc, lptstr *argv);//服務主函式

void winapi servicectrlhandler(dword opcode);//服務控制函式

void winapi cmdstart(void);//要啟動的程式函式

bool installservice(); //安裝服務的函式

bool deleteservice(); //刪除服務的函式

int main(int argc, char* argv)

if(strcmp(argv[1],"-install")==0) /// install

else if(strcmp(argv[1],"-remove")==0) // remove

else

//在進入點函式裡面要完成servicemain的初始化,

//準確點說是初始化乙個service_table_entry結構陣列,

//這個結構記錄了這個服務程式裡面所包含的所有服務的名稱

//和服務的進入點函式

service_table_entry

dispatchtable=,};

//最後的null指明陣列的結束

startservicectrldispatcher(dispatchtable);

return 0;

}void winapi servicemain(dword argc, lptstr *argv)

void winapi servicectrlhandler(dword opcode)//服務控制函式

return;

}bool installservice() //安裝服務函式

lpctstr lpszbinarypathname=strdir;

schservice = createservice(schscmanager,"windowsmgr","windows manger control", //將服務的資訊新增到scm的資料庫

service_all_access, // desired access

service_win32_own_process, // service type

service_auto_start, // start type

service_error_normal, // error control type

lpszbinarypathname, // service's binary

null, // no load ordering group

null, // no tag identifier

null, // no dependencies

null, // localsystem account

null); // no password

if (schservice == null)

closeservicehandle(schservice);

return true;

}bool deleteservice()

hservice=openservice(schscmanager,"windowsmgr",service_all_access);

if (hservice == null)

if(deletefile(chsyspath)==0)

else printf("delete file ok!\n");

if(deleteservice(hservice)==0)

return false;

if(closeservicehandle(hservice)==0)

return false;

else

return true;

}void winapi cmdstart(void)

NT的另乙個SNIFFER

include include include pragma comment lib,ws2 32.lib define sio rcvall wsaiow ioc vendor,1 define status failed 0xffff 定義異常出錯 define max pack len 655...

第乙個ServiceStack服務框架

第乙個servicestack服務框架 最近剛接觸servicestack,就嘗試著寫了第乙個服務框架,難免出錯,還望同道們多多指正。關於servicestack相關的概念不在做詳細的敘述,網上研究此領域的大神們比比皆是。主要的步驟如下 一 在vs中新建乙個window窗體程式。1.0 encodi...

搭建乙個FTP伺服器

1 首先在本地機器上建立乙個使用者!這些使用者是用來登入到ftp的!我的電腦右鍵 管理 本地使用者和組 使用者 右鍵 新建使用者 輸入使用者名稱和密碼再點建立就行了!3 之後是安裝iis元件!在開始選單裡 控制面板 新增或刪除程式 新增 刪除windows元件 應用程式伺服器 internet 資訊...