因為工作關係,仍持續使用Visual Basic 6,這套長老級的開發軟體。 不曉得在M$極力推廣 .NET 的技術下還能存在多少個開發用戶。 (我就是其中之一) 當然,我也不是那種墨守成規、閉門造車的人,在開發新系統的時候,也都已經採用 .NET 平台。 畢竟維護的系統太大,要由VB6轉變成VB.NET還需要一些時間吧… 最近,就遇到了棘手的問題,「如何在Win 2000/XP中重新啟動服務呢?」 在網路找了一些資料,原來可以透過WMI(Windows Management Instrumentation)的方式取得服務程序, 再進行啟動/關閉的動作。Sample Code如下述。 Private Function SwitchService(strSvcName As String, blnOpen As Boolean) As Boolean Dim strWMIcls As String Dim objSvc As Object strWMIcls = "Win32_Service" Set objSvc = GetObject("winmgmts:").InstancesOf(strWMIcls)(strWMIcls & ".Name=""" & strSvcName & """") SwitchService = CallByName(objSvc, IIf(blnOpen, "StartService", "StopService"), 1) = 0 End Function If SwitchService("W32Time", True) = True Then '只要將啟動/關閉的服務程序名稱帶入第一個引數 MsgBox "OK!" End If 不過,我怎麼知道這個服務程序的名稱是什麼?有以下兩種方式: 1.很簡單,去[控制台]->[系統管理工具]->[服務]中,點兩下開啟服務,在跳出來的視窗中就有答案了。  (下圖,是"服務名稱"非顯示名稱) 2.在系統機碼表中 \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 也可以看出來各個服務程序的名稱。
文章標籤
全站熱搜
創作者介紹
創作者 jackywu612 的頭像
jackywu612

傑客邦

jackywu612 發表在 痞客邦 留言(0) 人氣(538)