我在尝试用VB6做一个Windows服务程序以下是我的部分代码:
Sub Main()    Call InitServiceTable("MyService", AddressOf ServiceMain)
    StartServiceCtrlDispatcher ServiceTable
    
End SubSub ServiceMain(ByVal argc As Long, ByVal argv As Long)    ServiceStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS
    ServiceStatus.dwCurrentState = SERVICE_START_PENDING
    ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP Or SERVICE_ACCEPT_PAUSE_CONTINUE Or SERVICE_ACCEPT_SHUTDOWN
    ServiceStatus.dwServiceSpecificExitCode = 0
    ServiceStatus.dwWin32ExitCode = 0
    ServiceStatus.dwCheckPoint = 0
    ServiceStatus.dwWaitHint = 0
    
    hStatus = RegisterServiceCtrlHandler("MyService", AddressOf ControlHandler)
    If hStatus = 0 Then Exit Sub
    
    ServiceStatus.dwCurrentState = SERVICE_RUNNING
    Call SetServiceStatus(hStatus, ServiceStatus)    While True
        Sleep 5000
    WendEnd Sub
安装之后,到控制面板的服务里启动它。结果弹出了对话框,上面写:“错误1053:服务没有及时响应启动或控制请求”这是什么原因啊?请朋友们帮帮忙。

解决方案 »

  1.   

    vb做服务最好用NTSVC.OCX控件
      

  2.   

    看完这个,就知道怎么做了
    http://vbwire.com/advanced/howto/service.asp
      

  3.   


    楼上,你的这篇文章不是讲述如何制作系统服务,而讲的是怎么安装系统服务。----------------------------------to dingyanwei:我也知道可以用NTSVC.OCX控件,但是具体的方法我不清楚----------------------------------这个问题不搞清楚真是很不舒服,所以还是请大家帮我看看,我在上面贴的代码,到底错在哪了?
      

  4.   

    没细看你的代码,据我估计你的代码在9x下好用,xp下不能用。
      

  5.   

    建议用VB.net做系统服务,比较方便
    VB6的应该不支持XP的
      

  6.   

    ServiceTable是怎么定义和赋值的?
    ControlHandler在那? 
      

  7.   


    ServiceTable是全局定义的,ControlHandler与以上代码在同一个模块文件里。请帮帮我。
      

  8.   


    哦,我现在不在自己的电脑,所以发不了完整的源文件。等过几天我把完整的代码发出来,请你到时帮我看看哦。其实我就是按照一个VC的程序翻译成VB的,可是却总不成功,错在哪里摸不着头脑,所以很是郁闷。