请问那个官方的services.au3怎样创建服务呢?急需,多谢!
请问各位高手们那个官方services.au3的创建服务怎样使用呢?能否说说每一项参数应该怎样填写呢?
函数的圆形是这样的:
Func _Service_Create( $sServiceName, _
$sDisplayName, _
$iServiceType, _
$iStartType, _
$iErrorControl, _
$sBinaryPath, _
$sLoadOrderGroup = Default, _
$fTagId = Default, _
$vDependencies = Default, _
$sServiceUser = Default, _
$sPassword = Default, _
$sComputerName = "" )
不知道每一项参数填写什么,知道的朋友麻烦说下.多谢了!
急需要使用,麻烦大家了. _Service_Create( '服务名', '显示名', '', '启动类型', '', '路径') 我知道启动类型啊,但是写什么呢?
数字"2",还是字母"auto"呢? 留空就行 = 自动启动 = 0x00000002 注册不了哦,运行了虽然没错误。但是也不会添加服务。都重启n变了。
我是这样写的:
#include "Services.au3"
_Service_Create("ServiceName","Display Service Name","","0x00000002","","c:\xxx.exe")
我真的怀疑这个函数是不是不能用的啊? 我用我这的版本<ServiceControl.au3> 测试很正常。#Include<ServiceControl.au3>
_CreateService('','aaa','bbb','C:\ccc.exe')
;_DeleteService('','aaa') 哦,楼上的朋友能提供下你的头文件吗?
急需要用呢。多谢! 上传了。。。 多谢多谢! 感谢楼上的朋友。
服务是建立成功了,但是无法启动。
提示:
在 本地计算机 无法启动 Keyboard Service 服务。
错误 1053: 服务没有及时响应启动或控制请求。 谁知道这是什么原因吗?
google了下,好像编写系统服务程序还得有一定的规则。
麻烦知道的高手们能说说。这个au3是否能像msc一样编写服务程序呢。 AU3创建的服务需要 启动对象返回是否成功的提示 Func _CreateService($name, $displayname, $pathname, $startmode = "Automatic", $desktopinteract = True, $startname = "", $servicetype = 16, $errorcontrol = 0)
Local $password
$objServices = ObjGet("winmgmts:root\cimv2")
$objService = $objServices.Get("Win32_Service")
$objInParam = $objService.Methods_("Create") .inParameters.SpawnInstance_()
$objInParam.Properties_.item("Name") = $name;< - Service Name
$objInParam.Properties_.item("DisplayName") = $displayname;< - Display Name, what you see in the Services control panel
$objInParam.Properties_.item("PathName") = $pathname;< - Path and Command Line of the executable
$objInParam.Properties_.item("ServiceType") = $servicetype
$objInParam.Properties_.item("ErrorControl") = $errorcontrol
$objInParam.Properties_.item("StartMode") = $startmode
$objInParam.Properties_.item("DesktopInteract") = $desktopinteract
If Not $startname = "" Then
$objInParam.Properties_.item("StartName") = $startname;< - If null, will run as Local System
EndIf
If Not $password = "" And Not $startname = "" Then
$objInParam.Properties_.item("StartPassword") = $password;< - Only populate if the SatrtName param is populated
EndIf
$objOutParams = $objService.ExecMethod_("Create", $objInParam)
ConsoleWrite($objOutParams)
EndFunc ;==>_CreateService
;删除服务
Func _DeleteService($name)
Dim $objWMIService, $objItem, $objService
Dim $colListOfServices, $strService
$strService = $name;< - Service Name
$objWMIService = ObjGet("winmgmts:root\cimv2")
$colListOfServices = $objWMIService.ExecQuery("Select * from Win32_Service Where Name = '" & $strService & "'")
For $objService In $colListOfServices
$objService.Delete()
Next
EndFunc ;==>_DeleteService
;开始服务
Func _StartService($name)
Dim $objWMIService, $objItem, $objService
Dim $colListOfServices, $strService
$strService = $name;< - Service Name
$objWMIService = ObjGet("winmgmts:root\cimv2")
$colListOfServices = $objWMIService.ExecQuery("Select * from Win32_Service Where Name = '" & $strService & "'")
For $objService In $colListOfServices
$objService.StartService()
Next
EndFunc ;==>_StartService
;停止服务
Func _StopService($name)
Dim $objWMIService, $objItem, $objService
Dim $colListOfServices, $strService
$strService = $name;< - Service Name
$objWMIService = ObjGet("winmgmts:root\cimv2")
$colListOfServices = $objWMIService.ExecQuery("Select * from Win32_Service Where Name = '" & $strService & "'")
For $objService In $colListOfServices
$objService.StopService()
Next
EndFunc ;==>_StopService创建服务,并不一定使用这些函数就能成功加载,有些还得在注册表中写入键值,才能成功加载或启动服务。 谢谢楼上的无私奉献精神, 复制代码过来收藏学习了. 使用过程中, 如有搞不懂之处, 还望坛上高手们指教. :face (37):学习中...
页:
[1]
2