从品牌网站建设到网络营销策划,从策略到执行的一站式服务
可以在程序第一次运行的时候往系统注册表的指定位置写入一个值,这样只要检测注册表中是否有这个值就知道是首次运行还是再次运行了
专注于为中小企业提供成都网站制作、成都做网站、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业天山免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
安装一个sandboxie(沙盘),然后保存一个沙盘镜像,每次打开沙盘运行程序就恢复一下,随便软件做的什么限制,都可以重复打开。
方法一:通过Diagnostics.Process.GetProcessesByName函数来检测程序是否已经启动
Imports System.Windows.Forms
Module Module1
Sub Main()
'检测多重启动
If Diagnostics.Process.GetProcessesByName( _
Diagnostics.Process.GetCurrentProcess.ProcessName).Length 1 Then
MessageBox.Show("已经一个实例的本程序正在运行。")
Return
End If
Application.Run(New Form())
End Sub
End Module
不过这个方法有个缺点,如果用户改了下exe的名字就检测不到了,所以更好的方法如下
方法2:使用Mutex
Imports System.Windows.Forms
Module Module1
Sub Main()
Dim createdNew As Boolean
' 创建mutex
Dim mutex As System.Threading.Mutex = _
New System.Threading.Mutex(True, "YourAppName", createdNew)
If createdNew = False Then
MessageBox.Show("已经一个实例的本程序正在运行。")
Return
End If
Application.Run(New Form())
' 释放mutex
mutex.ReleaseMutex()
End Sub
End Module
因为你Dim lByte As Byte 没有声名数组,
lSWiter.WriteByte(Nothing) '这句话也是错误的,你把文件流给写入空了,所以第二次运行打开文件就没有数据了。
多调试,跟踪数据,可以多学点经验。
给个简单点的思路吧:写注册表在程序初始化(即在本机中第一次运行时候)在注册表中写入个键值,用于标识当程序第一次运行的时候,阅读指定注册表中键值,假设为1标识今天已经运行了,如果为0表示今天还没运行那么,程序运行时候并设置该注册表键值为1,这样当一次运行完后,后面当天在运行就自动退出==最好是设置两个标识,一个表示天,一个标识程序当天是否已经运行
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图