pighead456 发表于 2012-4-9 16:27:43

services.au3 创建服务有问题 大家别用了

本帖最后由 pighead456 于 2012-4-9 16:31 编辑

主要问题 出现在 变量 $vdepend 上面用来创建依存服务的

如果使用数组 会 填充 乱码 以及 建立 错漏的 服务出现乱码 不是什么编码问题

我的代码 都是英文的

我测试了 好几天 才发现的

同样 用 sc 创建的 没问题

user3000 发表于 2012-4-9 16:36:48

回复 1# pighead456

把使用环境也顺便报上来吧.
    services.au3 出来很久了, 你是第1个叫我们别用了.

Qokelate 发表于 2012-4-9 16:44:28

本帖最后由 Qokelate 于 2012-4-9 16:45 编辑

请先确认你代码有没问题!!!    什么叫数组填充?不理解

如果使用数组 会 填充 乱码 以及 建立 错漏的 服务出现乱码 不是什么编码问题

pighead456 发表于 2012-4-9 17:55:53

请先确认你代码有没问题!!!    什么叫数组填充?不理解
Qokelate 发表于 2012-4-9 16:44 http://www.autoitx.com/images/common/back.gif


    你没接触到这么高级的代码 你不懂

pighead456 发表于 2012-4-9 17:56:59

回复pighead456

把使用环境也顺便报上来吧.
    services.au3 出来很久了, 你是第1个叫我们别用了.
user3000 发表于 2012-4-9 16:36 http://www.autoitx.com/images/common/back.gif


    一般简单的 使用 不会出错 错误在 依存关系的 变量

pusofalse 发表于 2012-4-9 18:12:47

这样说很没有说服力,直接贴代码吧,并且把调用到的创建服务的函数也贴上来。

Qokelate 发表于 2012-4-9 18:51:44

回复 4# pighead456


    好吧 , 我不懂你牛叉   这么叼你自己写API啊   用别人的UDF干嘛呢

pighead456 发表于 2012-4-9 19:39:04

本帖最后由 pighead456 于 2012-4-9 19:53 编辑

这样说很没有说服力,直接贴代码吧,并且把调用到的创建服务的函数也贴上来。
pusofalse 发表于 2012-4-9 18:12 http://www.autoitx.com/images/common/back.gif#include<services.au3>
Dim $ServiceSdepend
$ServiceSdepend="IPSec"
$ServiceSdepend="RPCSS"
MsgBox(0,0,$ServiceSdepend)
_Service_Create("PolicyAgent","IPSEC Services",0x00000010,0x00000002,0x00000001,"%windir%\system32\lsass.exe","","",$ServiceSdepend)
测试 首先 删除 服务 再用 上面的 代码 创建 服务 既可

sc delete policyagent

用 au3代码 创建的 服务 启动 会失败 注册表 内 有乱码

而用 sc 创建的 服务 则 完全正常

补充一下 :

如果 创建的 服务 不使用 依存服务的话 那么 au3 创建的 服务 也是 正常的

pusofalse 发表于 2012-4-9 20:12:22

打开services.au3,找到_Service_Create函数,你会发现有其中这样一段代码:
        If IsArray($vDependencies) Then
                Local $iDepend, $tagDepend
                $iDepend = UBound($vDependencies) - 1
                For $i = 0 To $iDepend
                        $tagDepend &= "wchar[" & StringLen($vDependencies[$i]) + 1 & "];"
                Next
                $tDepend = DllStructCreate(StringTrimRight($tagDepend, 1))
                For $i = 0 To $iDepend
                        DllStructSetData($tDepend, $i + 1, $vDependencies[$i])
                Next
        Else
                $tDepend = DllStructCreate("wchar[" & Number($vDependencies <> Default) * (StringLen($vDependencies) + 1) & "]")
                DllStructSetData($tDepend, 1, $vDependencies)
        EndIf


将这段代码替换为:
        If IsArray($vDependencies) Then
                Local $iDepend, $tagDepend
                $iDepend = UBound($vDependencies) - 1
                For $i = 0 To $iDepend
                        if $i = $iDepend Then
                                $tagDepend &= "wchar[" & StringLen($vDependencies[$i]) + 2 & "];"
                        Else
                                $tagDepend &= "wchar[" & StringLen($vDependencies[$i]) + 1 & "];"
                        EndIf
                Next
                $tDepend = DllStructCreate(StringTrimRight($tagDepend, 1))
                For $i = 0 To $iDepend
                        DllStructSetData($tDepend, $i + 1, $vDependencies[$i])
                Next
        Else
                $tDepend = DllStructCreate("wchar[" & Number($vDependencies <> Default) * (StringLen($vDependencies) + 2) & "]")
                DllStructSetData($tDepend, 1, $vDependencies)
        EndIf


指定依存服务的参数,是用NULL字符分割的字符串,最后应该追加一个NULL。

pighead456 发表于 2012-4-9 22:01:39

打开services.au3,找到_Service_Create函数,你会发现有其中这样一段代码:


将这段代码替换为:


...
pusofalse 发表于 2012-4-9 20:12 http://www.autoitx.com/images/common/back.gif
记录下来 回头测试一下 谢谢

boyhong 发表于 2012-4-10 08:37:45

打开services.au3,找到_Service_Create函数,你会发现有其中这样一段代码:


将这段代码替换为:


...
pusofalse 发表于 2012-4-9 20:12 http://www.autoitx.com/images/common/back.gif

更新到汉化版里去吧。

502762378 发表于 2012-4-11 18:44:23

看来这种提问的方式很有效撒

xms77 发表于 2012-4-11 21:09:15

回复 7# Qokelate
和这种人没有必要生气,看看他的ID就知道咯!

xms77 发表于 2012-4-11 21:12:00

回复 9# pusofalse
P版一般不出手,出手则惊人!

pighead456 发表于 2012-4-11 21:13:44

回复Qokelate
和这种人没有必要生气,看看他的ID就知道咯!
xms77 发表于 2012-4-11 21:09 http://www.autoitx.com/images/common/back.gif


    恩 没必要生气 看见 你的头像 就想笑

{:face (303):}
页: [1] 2 3
查看完整版本: services.au3 创建服务有问题 大家别用了