2015-12-09 23 views
-2

在Win7 64位,为32位编译的代码XE2:我试图设置AfterInstall事件中服务的配置的延迟启动属性。 QueryServiceConfig2让我获得了现有的值,但通过GetLastError调用ChangeServiceConfig2返回$ 57(坏参数)。我使用的是WinSvc中声明的SERVICE_DELAYED_AUTO_START_INFO类型的var,但我尝试过各种其他存储大小的变量,但都没有成功。在设置服务描述时,调用ChangeServiceConfig2工作正常。德尔福ChangeServiceConfig2错误设置延迟启动

我在这里错过了什么?

+0

请显示您的实际'AfterInstall'代码。错误$ 57('ERROR_INVALID_PARAMETER')意味着您将一个无效的输入参数传递给'ChangeServiceConfig2()'。 –

+0

我不知道你如何期待我们解释为什么当你没有向你显示你使用该函数的代码时,你使用'QueryServiceConfig2'失败并出现错误的参数错误。 *医生,我的脚看起来很有趣。这通常不是那种颜色,它的形状也不太对。我不会再提供任何细节,或者让你看到我的脚。怎么了,我该如何变好?* –

回答

0

谢谢,是的,显示代码会更好,但事实证明,它可能没有那么有用。今天我发现信息结构中传递的BOOL值只能设置为0或1的数字值 - 任何其他值(特别是Delphi for TRUE使用的-1)都会引起$ 57的bad-param错误。我发现这是因为将参数设置为FALSE并未产生错误,但将其设置为TRUE。将其更改为一个整数并尝试不同的值,这使我只有两个可接受的值。这与每个其他Windows API调用都不一致,因为我可以想到一个BOOL参数,这就是为什么它难倒我。无论如何,谢谢,伙计们。