
正文
vb.net程序禁止多开 windows程序多开
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
VB禁止程序多开
你如果要这样的话。。。
'Form 代码=========================
private sub form_load
EnumWindows AddressOf EnumWindowsProc, ByVal 0
End Sub
'Module代码========================
'Add this code to a module
Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
Dim sSave As String, Ret As Long
Ret = GetWindowTextLength(hwnd)
sSave = Space(Ret)
GetWindowText hwnd, sSave, Ret + 1
If Trim(sSave) = "Form2" Then '你程序的窗体名字*******************
Debug.Print Str$(hwnd) + " " + sSave
msgbox "已经保了"
end
End If
'continue enumeration
EnumWindowsProc = True
End Function
相关问答
Q1: vb.net 如何防止程序重复运行?
现在多是在form_load里验证的,你打开第二次也只是暂时的,后面让他关闭就行了.
form_load之前windows form就已经生成... 把你程序读入内存就算这个程序已经被打开开始执行了...不管你放那里都是会打开第二次的...
要让他结束直接用Application.Exit()就行了.
Q2: 我想请问下,怎么禁止程序多开,用VB的话,要怎么做我不怎么会啊。教教我吧。谢谢
程序有相应的名称进程,程序运行后在系统进程后有相应进程,可以进行查找。
程序运行前先查找系统进程中有没有找到相应的进程,如有,给予提示,告知程序已运行,并退出程序;如没有,正常启动运行即可。
Q3: VB.NET 限制MDI子窗体多开出错
试试:
移除行 Return False ,Function 过程的运算,在没有“经历”Return True 代码时,原值就是返回 False
当运算代码进入 Return True 时,目的效果已经完成,应该接着跳离For回圈、或是跳离Function的代码 Exit For 或 Exit Function







