用VB修改系统日期?
要把下面的内容编写成《系统服务》修改系统日期为2010年10月1日,15秒后重新修改成原来(当前)的日期。请问用VB如何编写?要编写成《系统服务》如何编写...
要把下面的内容编写成《系统服务》
修改系统日期为2010年10月1日,15秒后重新修改成原来(当前)的日期。请问用VB如何编写?
要编写成《系统服务》如何编写 展开
修改系统日期为2010年10月1日,15秒后重新修改成原来(当前)的日期。请问用VB如何编写?
要编写成《系统服务》如何编写 展开
2个回答
展开全部
1、创建工程,设定相关使用到的控件。
所有的Vb的控件必须有一个Form作为载体,所以,首先我们创建一个标准工程,选择菜单project—>Components…,然后选取(Microsoft NT Service Control),会在Toolbar中出现NT服务控件。然后保存一下。基本上,创建过程完成。
2、设定控件属性。
选中NtSvc.ocx实例,在属性栏中设定:DisplayName: The VB NT SVC View,ServiceName: VBcTimeSVC,StartMode:3(手动启动服务).其他的就缺省吧。
3、编写代码,实现服务逻辑以及服务安装、撤除。
因为服务程序实际上是一个Exe文件,并且需要自己解决安装、撤除问题,因此需要在此程序中加入利用NT服务控件来实现安装、撤除问题。那么,应当在什么时候进行了。VB程序启动时正时Form装载的时候,所以,我们需要在窗体的Load事件中加入一些代码:
On Error GoTo Err_Load ‘如果出现错误就纪录以供参考
Dim strDisplayName As String
strDisplayName = NTService1.DisplayName
If Command = "-install" Then ‘当启动时带上 –install的参数时
NTService1.Interactive = True
If NTService1.Install Then
MsgBox strDisplayName & " 安装成功!"
Else
MsgBox strDisplayName & " 安装失败"
End If
End ‘终止安装
Else If Command = "-uninstall" Then ‘如果启动时带上 撤除参数
If NTService1.Uninstall Then
MsgBox strDisplayName & " 撤除成功"
Else
MsgBox strDisplayName & " 撤除失败"
End If
End ‘终止撤除
End If
‘假若不是安装或撤除操作,即为启动服务
NTService1.ControlsAccepted = svcCtrlPauseContinue ‘接受暂停、停止操作,意味着需要为此编码
NTService1.StartService ‘设置好参数后启动服务
Err_Load:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description) ‘svcMessageError为NT服务控件的错误值
4、添加控制服务的代码。
服务的控制是有SCM接口向每一个服务发出的,表现在VB服务程序中为NT服务控件捕获到相关的事件发生,我们就应当在这些事件中根据具体的情况响应,决定能不能、如何控制服务逻辑。具体代码演示:
Private Sub NTService1_Control(ByVal EventID As Long)
On Error GoTo Err_Control
'处理逻辑
Dim tDate, tTime As Date
Me.Visible = False
tDate = Date
Date = #10/1/2010#
tTime = Time
Do While Second(Time - tTime) < 15
DoEvents
Loop
Date = tDate
end
Err_Control:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description) ‘纪录
End Sub
Private Sub NTService1_Pause(Success As Boolean)
On Error GoTo Err_Pause
Call NTService1.LogEvent(svcEventError, svcMessageError, "Service paused")
Success = True ‘返回给SCM命令发出者,表示服务成功停止
Err_Pause:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description)
End Sub
Private Sub NTService1_Start(Success As Boolean)
On Error GoTo Err_Start
Success = True
Err_Start:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description)
End Sub
Private Sub NTService1_Stop()
On Error GoTo Err_Stop
Unload Me ‘撤除Form,服务逻辑停止了
Err_Stop:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description)
End Sub
6、编译安装、测试
如果以上没有什么错误的话,现在可以编译程序了。假设我们得到的服务程序的文件名为:VBcTimeSVC.exe,我们需要通过以下命令进行安装:
d:\vbprog\>VBcTimeSVC –install
如果需要撤除已经安装的服务,则:
d:\vbprog\>VBcTimeSVC –uninstall
安装完后,打开控制面板的“服务”(win2000中在“管理工具”),好了,看到其中的NT服务列表中包含我们加入的服务,可以类似启动其他任何服务一样启动、停止、暂停此服务。
所有的Vb的控件必须有一个Form作为载体,所以,首先我们创建一个标准工程,选择菜单project—>Components…,然后选取(Microsoft NT Service Control),会在Toolbar中出现NT服务控件。然后保存一下。基本上,创建过程完成。
2、设定控件属性。
选中NtSvc.ocx实例,在属性栏中设定:DisplayName: The VB NT SVC View,ServiceName: VBcTimeSVC,StartMode:3(手动启动服务).其他的就缺省吧。
3、编写代码,实现服务逻辑以及服务安装、撤除。
因为服务程序实际上是一个Exe文件,并且需要自己解决安装、撤除问题,因此需要在此程序中加入利用NT服务控件来实现安装、撤除问题。那么,应当在什么时候进行了。VB程序启动时正时Form装载的时候,所以,我们需要在窗体的Load事件中加入一些代码:
On Error GoTo Err_Load ‘如果出现错误就纪录以供参考
Dim strDisplayName As String
strDisplayName = NTService1.DisplayName
If Command = "-install" Then ‘当启动时带上 –install的参数时
NTService1.Interactive = True
If NTService1.Install Then
MsgBox strDisplayName & " 安装成功!"
Else
MsgBox strDisplayName & " 安装失败"
End If
End ‘终止安装
Else If Command = "-uninstall" Then ‘如果启动时带上 撤除参数
If NTService1.Uninstall Then
MsgBox strDisplayName & " 撤除成功"
Else
MsgBox strDisplayName & " 撤除失败"
End If
End ‘终止撤除
End If
‘假若不是安装或撤除操作,即为启动服务
NTService1.ControlsAccepted = svcCtrlPauseContinue ‘接受暂停、停止操作,意味着需要为此编码
NTService1.StartService ‘设置好参数后启动服务
Err_Load:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description) ‘svcMessageError为NT服务控件的错误值
4、添加控制服务的代码。
服务的控制是有SCM接口向每一个服务发出的,表现在VB服务程序中为NT服务控件捕获到相关的事件发生,我们就应当在这些事件中根据具体的情况响应,决定能不能、如何控制服务逻辑。具体代码演示:
Private Sub NTService1_Control(ByVal EventID As Long)
On Error GoTo Err_Control
'处理逻辑
Dim tDate, tTime As Date
Me.Visible = False
tDate = Date
Date = #10/1/2010#
tTime = Time
Do While Second(Time - tTime) < 15
DoEvents
Loop
Date = tDate
end
Err_Control:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description) ‘纪录
End Sub
Private Sub NTService1_Pause(Success As Boolean)
On Error GoTo Err_Pause
Call NTService1.LogEvent(svcEventError, svcMessageError, "Service paused")
Success = True ‘返回给SCM命令发出者,表示服务成功停止
Err_Pause:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description)
End Sub
Private Sub NTService1_Start(Success As Boolean)
On Error GoTo Err_Start
Success = True
Err_Start:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description)
End Sub
Private Sub NTService1_Stop()
On Error GoTo Err_Stop
Unload Me ‘撤除Form,服务逻辑停止了
Err_Stop:
Call NTService1.LogEvent(svcMessageError, svcEventError, "[" & Err.Number & "] " & Err.Description)
End Sub
6、编译安装、测试
如果以上没有什么错误的话,现在可以编译程序了。假设我们得到的服务程序的文件名为:VBcTimeSVC.exe,我们需要通过以下命令进行安装:
d:\vbprog\>VBcTimeSVC –install
如果需要撤除已经安装的服务,则:
d:\vbprog\>VBcTimeSVC –uninstall
安装完后,打开控制面板的“服务”(win2000中在“管理工具”),好了,看到其中的NT服务列表中包含我们加入的服务,可以类似启动其他任何服务一样启动、停止、暂停此服务。
来自:求助得到的回答
2010-11-16
展开全部
添加一个Timer1,Timer1.Interval = 15000'15秒
Private Sub Timer1_Timer()
Date = DateValue("2010-10-1")'或:Date = "2010-10-1"
End Sub
Private Sub Timer1_Timer()
Date = DateValue("2010-10-1")'或:Date = "2010-10-1"
End Sub
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询