让记事本也自动存盘

IT商界

  我们平时使用的Word、Excel等应用软件都有自动存盘功能,这样可以在出现意外情况时把数据的丢失减到最小程度,可是简陋的记事本就没有这么幸运了,但我们平时又离不开它。这可怎么办?没关系,让我们用VB来对它进行完善,让记事本也来个自动保存。

  一、设计思路

  在VB中有一个SendKeys方法,可以模拟键盘发送指令给应用程序,只要设定一定的时间间隔,然后按时给记事本发送保存文件的命令,就可以达到自动保存的目的了。

  二、程序设计

  新建一工程,在窗体上添加一个时钟控件,并将属性INTERVAL的值设置为1000(即1秒),再添加一个Label控件、一个TEXT控件text1和UpDown控件“updown1”,并设置“Updown1”的“autobuddy”属性为“true”;“buddyproperty”属性为“Text”;“increment”属性为“1”;“max”属性为“20”;“min”属性为“1”。最后再添加一个按钮控件command1并设置caption属性为“开始”。(程序界面和控件面局如图1所示)下面就可以双击窗体添加如下代码了:

  Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

  Dim i As Integer

  Private Sub Command1_Click()

  Me.WindowState = 1

  Timer1.Enabled = True

  End Sub

  Private Sub Form_Load()

  Form1.Caption = "记事本自动保存"

  Text1.Text = ""

  Text1.Text = 1

  Shell "notepad.exe", vbNormalFocus '打开记事本,并使之成为当前窗口

  Timer1.Enabled = True '激活时钟控件

  Form1.WindowState = 0

  End Sub

  Private Sub Timer1_Timer()

  If FindWindow("Notepad", vbNullString) Then

  Dim b As Integer

  b = UpDown1.Value

  i = i + 1

  If i Mod b * 60 = 0 Then '设置自动存盘的时间间隔为分钟,可以根据需要进行更改。

  SendKeys "%(FS)", True '调用文件菜单的保存命令,显示文件保存对话框

  End If

  Else

  Unload Me

  End If

  End Sub

  使用方法:代码输入完毕,将该程序编译成EXE文件,用“发送到/桌面快捷方式”命令为该文件在桌面上创建一个快捷方式图标。当要使用记事本时,只要双击这个快捷方式图标就可以自动打开记事本及这个程序了。设置一下自动保存的时间间隔,比如2分钟,点击“开始”按钮开始工作。当第一次保存时,会显示文件保存窗口,让你填写文件名和选择路径,以后将每隔2分钟自动保存一次。当你关闭记事本时该程序也会随之自动退出。本程序在VB6.0企业版和Win98 SE下调试通过。