none
[VB6]服务程序的启动问题 RRS feed

  • 问题

  • 我使用ntsvc.ocx创建了一个服务程序,主窗口启动代码如下:

    Private Sub Form_Load()
        App.TaskVisible = False
        Me.Hide
       
        If Command = "-install" Then
            NTSvc.Interactive = True
            If NTSvc.Install Then
                MsgBox "注册服务成功", vbOKOnly
            Else
                MsgBox "注册服务失败", vbOKOnly
            End If
            End
        Else
            If Command = "-install" Then
                NTSvc.Interactive = True
                If NTSvc.Install Then
                    MsgBox "注销服务成功", vbOKOnly
                Else
                    MsgBox "注销服务失败", vbOKOnly
                End If
                End
            End If
        End If
       
        NTSvc.ControlsAccepted = svcCtrlStartStop
        NTSvc.StartService
       
    End Sub

    服务的启动和停止事件中另有处理。程序编译、注册服务正常,从服务控制管理器SCM中启停该服务,也都正常。
    问题:该服务停止时,直接双击运行该程序,启动后不能工作,进程管理器中可以看到该程序。
    在VB编辑器中,以单步方式运行,在运行完Form_Load中的NTSvc.StartService后,就没有了反应。我的理解NTSvc.StartService方法会引起NTSvc_Start事件,但事实上并没有。

    请教,这是什么原因? 该怎么解决这个问题?
    2008年8月31日 7:09