CommonDialog和DBGrid控件需要另外加载,其中还需在DBGrid的属性页中进行一定的数据库挂接和设置,要在其属性页中“布局”中的第二列的“按钮”选中。
以下是本小软件的源代码:
Option Explicit
''''启动外部应用程序的API函数定义
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Dim OldDate As Date ''''保存系统日期
Private Sub Command1_Click()
If Not Data1.Recordset.EOF Then ''''若数据库正在添加记录则不动作
Date = Data1.Recordset(2) ''''改系统时间
Call ShellExecute(0, vbNullString, Data1.Recordset(1), vbNullString, vbNullString, vbOK) ''''启动外部程序
Me.Enabled = False ''''屏蔽其他操作
Timer1.Enabled = True ''''启动延时记时器
End If
End Sub
Private Sub Command2_Click()
End ''''关闭本系统
End Sub
Private Sub DBGrid1_BeforeUpdate(Cancel As Integer)
If MsgBox("记录改变吗?", vbYesNo + vbQuestion) <> vbYes Then Cancel = True ''''是否更新数据库控制
End Sub
Private Sub DBGrid1_ButtonClick(ByVal ColIndex As Integer)
On Error GoTo errdeal ''''打开错误监测
CommonDialog1.CancelError = True ''''系统对话框错误控制
CommonDialog1.ShowOpen ''''打开系统对话框
If CommonDialog1.filename <> "" Then DBGrid1.Text = CommonDialog1.filename ''''写入要启动的程序信息
errdeal:
End Sub
Private Sub Form_Load()
OldDate = Date ''''保存系统时间
Call Parameter ''''获取系统启动时的参数
End Sub
Private Sub Timer1_Timer()’五秒钟后恢复
If Format(Time, "HH:MM:SS") < "00:00:05" Then OldDate = OldDate + 1 ''''防止在接近零时时的日期恢复错误
Date = OldDate ''''恢复系统时间
Me.Enabled = True ''''恢复正常操作
Timer1.Enabled = False ''''屏蔽延时记时器
If Check1.Value = 1 Then End ''''是否关闭本系统
End Sub
Private Sub Parameter() ''''系统参数处理
If Command <> "" Then
''''查找相应的启动程序
Data1.RecordSource = "Select * From [StartProgram] Where [程序名称]=''''" & Trim(Command) & "''''"
Data1.Refresh
If Not (Data1.Recordset.EOF And Data1.Recordset.BOF) Then
Me.Hide ''''隐藏本系统
Check1.Value = 1 ''''设置关闭标志
Command1_Click ''''激活本系统的执行事件
Else
''''未找到处理
MsgBox "没有此启动程序!", 16, Me.Caption ''''错误提示
End ''''关闭
End If
End If
End Sub
五、小 结
本小软件可启动多个有时间限制的程序,也可以通过命令参数(格式是:本程序名 要启动的程序名称)一次启动一个程序,可用于作相应的快捷方式(和Anyday32类似),让你放心去使用。
程序编完了,但还需你的完善和润色,遇到问题自己解决——我是软件DIY人!