VB加载程序进入系统服务

VB有2种方式可以加载程序进入系统进程:
1.使用纯API方式.下回再写,太麻烦~~~
2.使用控件NTSVC.OCX加载
现在简单说说如何使用NTSVC.OCX
首先在VB工程中加载部件NTSVC.OCX,在窗体中放置该控件.
设置NTService1的几个属性:
DisplayName(该属性的含义是在服务中显示的名字)
ServiceName(该属性的含义是服务的名字,设置它后,我们可以使用控制台命令来开启和停止该服务)
StarMode(该属性的含义是启动方式,2-自动启动,3-默认启动,4-不启动)
ControlsAccepted(该属性的含义是服务是否运行有停止,暂停)
其他的属性可写可不写,我们就默认他吧!
我们在Form_Load事件中写入
Dim  strdisplayname  As   String
    strdisplayname 
=  NTService1.DisplayName
    
If   Command   =   " -i "   Then          ' 这个是命令参数,表示在运行该程序的时候带参数-i,注册服务
        NTService1.Interactive  =   True
        
If  NTService1.Install  Then
            
Call  NTService1.SaveSetting( " parameters " " timerinterval " " 500 " )
        
End   If
    
Else
        
If   Command   =   " -u "   Then       ' 带命令参数-u,注销服务
           NTService1.Uninstall
           
End
        
Else
        
End   If
     
End   If
     Timer1.Interval 
=   CInt (NTService1.GetSetting( " parameters " " timerinterval " " 500 " ))    ' Timer1控件的响应时间为500毫秒
     NTService1.StartService     ' 启动服务
      Exit Sub

接下来有4个控件的事件,分别是服务运行时,暂停时,开始时,停止时所产生的事件
Private   Sub ntservice1_control(ByVal eventid As Long)
On Error GoTo err_control
          
    
Exit Sub
err_control:
        
End Sub


Private   Sub ntservice1_pause(success As Boolean)
On Error GoTo err_pause

        
Exit Sub
err_pause:
    
End Sub


Private   Sub ntservice1_start(success As Boolean)
  
On Error GoTo err_start
    
    
Exit Sub
err_start:
End Sub


Private   Sub ntservice1_stop()
  
On Error GoTo err_stop
     
     
Exit Sub
err_stop:
End Sub


在上述对应事件中写入自己想要做的事就OK了!!

实例文件 下载

你可能感兴趣的:(vb)