对楼主的意思理解不是很确切。试一下这段代码的效果: Private Sub Form_Load() Command1.Caption = "请先点我!" Command2.Caption = "点我再次打开文件" Command2.Enabled = False End SubPrivate Sub Command1_Click() Open Environ$("SystemRoot") & "\win.ini" For Binary Lock Read Write As #1 Command2.Enabled = True End SubPrivate Sub Command2_Click() On Error GoTo E_H Open Environ$("SystemRoot") & "\win.ini" For Binary As #2 Exit Sub E_H: MsgBox Err.Description, 64 End Sub
3楼说的有点奇怪,全局变量是对一个进程的,2个进程全局变量有何用?硬盘放个标志还差不多。
还有,lz限定打开同一个文件也没说清楚:是一个打开了此文件时另一个不能打开?还是,只要一个打开过另一个就不能打开?前者,用createfile打开文件,并设定共享none即可;后者,简单的方法可以参考3楼的,不过改成一个程序在硬盘或者注册表之类的地方放个标志,另一个程序读取该标志以判断。
Private Sub Form_Load()
Command1.Caption = "请先点我!"
Command2.Caption = "点我再次打开文件"
Command2.Enabled = False
End SubPrivate Sub Command1_Click()
Open Environ$("SystemRoot") & "\win.ini" For Binary Lock Read Write As #1
Command2.Enabled = True
End SubPrivate Sub Command2_Click()
On Error GoTo E_H
Open Environ$("SystemRoot") & "\win.ini" For Binary As #2
Exit Sub
E_H:
MsgBox Err.Description, 64
End Sub