vb程序多开问题

vb程序多开问题,第1张

给你几个思路吧

第一个 思路比较简单

创建程序的时候同时创建一个文件

在文件内写入1标记程序已经运行一次

再运行时如果在这个文件里发现是1就直接return不再运行

程序关闭的时候就把文件里的1改成0

但是这种方法如果把文件删除 一样可以可以躲开

第二种方法 比较麻烦点

用进程快照在系统进程中查找有没有程序名称相同的程序运行

如果有 则不运行

Private Sub Form_Unload(Cancel As Integer) if a <> 1 then if msgbox(略去)=vbyes then cancel=1 end if End Sub

是不是让自己写的程序,在编译后,在同时间里只能打开一个?

要在同时间打开第二个就会自动退出?

如果是的话

1为你的工程添加一个模块

内容如下

Sub Main()

If AppPrevInstance Then End '如果第二次启动会被 End 结束

Form1Show ‘启动你的程序第一个要打开的窗体名称

End Sub

模块保存为 名称bas 文件

然后到VB的菜单工程→属性→启动对象选择Sub Main即可

1楼太复杂,2楼不靠谱,三楼……

我的方法是:

是一个易程序同时只能打开一个吗?

置顶设置如下:把窗口总在最前属性设为真。

防止多开设置如下:

1、添加dll命令,有关判断事件对象的。

版本 2

DLL命令 创建事件对象, 整数型, "kernel32", "CreateEventA"

  参数 安全特性, 整数型

  参数 重设事件, 逻辑型

  参数 触发状态, 逻辑型

  参数 对象名字, 文本型

DLL命令 打开事件对象, 整数型, "kernel32", "OpenEventA"

  参数 访问方法, 整数型

  参数 句柄继承, 逻辑型

  参数 对象名字, 文本型

DLL命令 关闭事件对象, 整数型, "kernel32", "CloseHandle"

  参数 对象句柄, 整数型

2、写个子程序:

版本 2

子程序 程序是否已运行, 逻辑型, 公开, 真表示已经运行,假表示还未运行

参数 标志文本, 文本型, , 可以是任何文本,但是最好要长一点以保证和系统中已有其他事件对象的名称不相冲突。

如果真 (打开事件对象 (2031619, 假, 标志文本) ≠ 0)

  返回 (真)

如果真结束

事件对象句柄 = 创建事件对象 (0, 假, 假, 标志文本)

返回 (假)

子程序 关闭事件对象, , 公开, 窗口销毁时调用

关闭事件对象 (事件对象句柄)

3、添加一个变量,程序集的。

版本 2

程序集变量 事件对象句柄, 整数型

4、使用时在窗口的“创建完毕”与“将被销毁”事件写入代码:

版本 2

子程序 __启动窗口_创建完毕

如果真 (程序是否已运行 (“禁止多次运行”) = 真)

  信息框 (“程序已经运行!”, 0, )

  销毁 ()

如果真结束

子程序 __启动窗口_将被销毁

关闭事件对象 ()

然后效果如下:

以上就是关于vb程序多开问题全部的内容,包括:vb程序多开问题、VB程序多开代码、vb如何让外部程序只能打开一个,多则关闭且保留一个等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10099048.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存