C 托盤服務中一些常用方法

2021-09-08 20:42:10 字數 4451 閱讀 3283

this.windowstate = system.windows.forms.formwindowstate.minimized;

private void formrmuservice_load(object sender, eventargs e)

/// /// 啟動時隱藏視窗

///

public void delay()

this.formclosing += new system.windows.forms.formclosingeventhandler(this.formmu_formclosing);

/// /// 窗體關閉事件

///

///

///

private void formmu_formclosing(object sender, formclosingeventargs e)

/// /// 縮小到托盤

///

private void minimizetotray()

this.sizechanged += new system.eventhandler(this.formmu_sizechanged);

/// /// 窗體大小改變事件

///

///

///

private void formmu_sizechanged(object sender, eventargs e)

}catch (exception ex)

}/// /// 縮小到托盤

/// /// 雙擊托盤事件

///

///

///

private void notifyicon_tray_doubleclick(object sender, eventargs e)

this.activate();

this.showintaskbar = true;

}

static  class  clservctl

catch

return true;

}/// /// 獲得服務的啟動方式

///

///

public static string getservruntype(string servname)

}catch

return runtype;

}/// /// 把本應用程式新增到系統啟動項

///

///

///

///

public static bool setautorun(string keyname, string filepath)

catch

return true;

}/// /// 取消系統啟動項

///

///

///

public static bool deleteautorun(string keyname)

catch

return true;

}/// /// 獲取服務的可執行檔案路徑

///

///

///

public static string getfilepath(string servername)

return "";

}/// /// 獲取乙個服務的狀態

///

///

///

public static string getservstate(string servername)

catch

}/// /// 啟動服務

///

///

///

public static bool runservice(string servername)

sc.waitforstatus(servicecontrollerstatus.running);

st = sc.status;//再次獲取服務狀態

if (st == servicecontrollerstatus.running)

else

}catch

}/// /// 停止服務

///

///

///

public static bool stopservice(string servername)

st = sc.status;//再次獲取服務狀態

if (st == servicecontrollerstatus.stopped)

else

}catch

}/// /// 暫停服務

///

///

///

public static bool pauseservice(string servername)

st = sc.status;//再次獲取服務狀態

if (st == servicecontrollerstatus.paused)

else

}catch

}/// /// 恢復暫停的服務

///

///

///

public static bool resumeservice(string servername)

st = sc.status;//再次獲取服務狀態

if (st == servicecontrollerstatus.running)

else

}catch

}/// /// 檢測服務是否安裝

///

///

public static bool iswindowsserviceinstalled(string servicename)

}return false;}}

/// /// windows服務中啟動exe,本地使用者登入時,不顯示介面,程式執行

/// 非本地賬戶時,程序立即被停止

///

private void serveicestart()

else

}/// /// windows服務中啟動exe,本地使用者登入時顯示介面,正常執行

/// 非本地使用者時程序執行會立即被停止

///

catch (exception ex)

}/// /// 本地賬戶登入,顯示介面,非本地賬戶程序立即停止

///

private void useraccount()

else

catch

//退出}}

/// /// 本機測試後,只有本地賬戶登入會執行,exe仍然是seeson1,windows服務session0

/// 詳細參考

///

private void seesionstart()

else

}

開啟cmd  cd c:\windows\microsoft.net\framework64\v4.0.30319

installutil 服務exe路徑

installutil /u 服務exe路徑

開啟記事本,寫入如下**,重新命名為bat檔案,右鍵已管理員身份執行即可

安裝windows服務     

@echo off 

@title 安裝windows服務

path %systemroot%\microsoft.net\framework\v4.0.30319

@echo off

installutil.exe windows服務路徑

pause

解除安裝windows服務  

@echo off 

@title 解除安裝windows服務

path %systemroot%\microsoft.net\framework\v4.0.30319

@echo off

installutil.exe /u windows服務路徑

C 中一些常見的方法

1.對規則的字串進行處理的bool splitstring string strorigin,string strsplit,vector vct string str strorigin.substr 0,iindex vct string.push back str ilen int stror...

執行緒中一些常用方法的分析

join 在乙個執行緒中呼叫另乙個執行緒的join 則當前執行緒阻塞,讓另乙個執行緒先執行後,當前才執行.根優先順序無關.從某種意義上來說,要兩個執行緒都執行這個方法才有作用 package test1 public class test7 class mythread1 implements ru...

ionic中一些常用的方法封裝

state ionicviewswitcher ionicnativetransitions ionichistory cookies ionicmodal cordovatoast cordovakeyboard ionicscrolldelegate function state,ionicvi...