sky808 发表于 2009-8-6 17:43:54

请问那个官方的services.au3怎样创建服务呢?急需,多谢!

请问各位高手们那个官方services.au3的创建服务怎样使用呢?
能否说说每一项参数应该怎样填写呢?

函数的圆形是这样的:
Func _Service_Create( $sServiceName, _
                $sDisplayName, _
                $iServiceType, _
                $iStartType, _
                $iErrorControl, _
                $sBinaryPath, _
                $sLoadOrderGroup = Default, _
                $fTagId = Default, _
                $vDependencies = Default, _
                $sServiceUser = Default, _
                $sPassword = Default, _
                $sComputerName = "" )

不知道每一项参数填写什么,知道的朋友麻烦说下.多谢了!
急需要使用,麻烦大家了.

afan 发表于 2009-8-6 18:06:52

_Service_Create( '服务名', '显示名', '', '启动类型', '', '路径')

sky808 发表于 2009-8-6 18:31:35

我知道启动类型啊,但是写什么呢?
数字"2",还是字母"auto"呢?

afan 发表于 2009-8-6 18:50:28

留空就行 = 自动启动 = 0x00000002

sky808 发表于 2009-8-6 19:08:37

注册不了哦,运行了虽然没错误。但是也不会添加服务。都重启n变了。

我是这样写的:

#include "Services.au3"
_Service_Create("ServiceName","Display Service Name","","0x00000002","","c:\xxx.exe")

我真的怀疑这个函数是不是不能用的啊?

afan 发表于 2009-8-6 19:36:10

我用我这的版本<ServiceControl.au3> 测试很正常。#Include<ServiceControl.au3>
_CreateService('','aaa','bbb','C:\ccc.exe')
;_DeleteService('','aaa')

sky808 发表于 2009-8-6 19:50:38

哦,楼上的朋友能提供下你的头文件吗?
急需要用呢。多谢!

afan 发表于 2009-8-6 19:55:49

上传了。。。

sky808 发表于 2009-8-6 20:32:31

多谢多谢!

sky808 发表于 2009-8-6 20:40:47

感谢楼上的朋友。
服务是建立成功了,但是无法启动。

提示:
在 本地计算机 无法启动 Keyboard Service 服务。

错误 1053: 服务没有及时响应启动或控制请求。

sky808 发表于 2009-8-7 06:27:42

谁知道这是什么原因吗?
google了下,好像编写系统服务程序还得有一定的规则。
麻烦知道的高手们能说说。这个au3是否能像msc一样编写服务程序呢。

prospertu 发表于 2009-11-30 10:42:48

AU3创建的服务需要 启动对象返回是否成功的提示

newx 发表于 2009-11-30 14:42:17

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创建服务,并不一定使用这些函数就能成功加载,有些还得在注册表中写入键值,才能成功加载或启动服务。

ahkang 发表于 2009-12-6 02:05:44

谢谢楼上的无私奉献精神, 复制代码过来收藏学习了. 使用过程中, 如有搞不懂之处, 还望坛上高手们指教.

lianfayong 发表于 2010-1-7 08:06:38

:face (37):学习中...
页: [1] 2
查看完整版本: 请问那个官方的services.au3怎样创建服务呢?急需,多谢!