| 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人! |