各位高手们:我的意思是:
我有一个应用程序,工程名称为MyProj,我现在已经运行这个程序,不想让用户再次运行,当用户第二次运行时提示用户已经运行过此程序了!急!!请高手们提教!!!!!!谢谢!!

解决方案 »

  1.   

    Public Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As SECURITY_ATTRIBUTES, ByVal bInitialOwner As Long, ByVal lpName As String) As Long
    Public Type SECURITY_ATTRIBUTES
            nLength As Long
            lpSecurityDescriptor As Long
            bInheritHandle As Long
    End Type
    Public Const ERROR_ALREADY_EXISTS = 183&
    Private Sub Main()
        'KPD-Team 1999
        'URL: http://www.allapi.net/
        'E-Mail: [email protected]
        ' -> code by Raist Lin
        Dim sa As SECURITY_ATTRIBUTES
        sa.bInheritHandle = 1
        sa.lpSecurityDescriptor = 0
        sa.nLength = Len(sa)
        'Try to create a new Mutex
        Debug.Print CreateMutex(sa, 1, App.Title)
        Debug.Print Err.LastDllError
        'Check if the function was succesfull
        If (Err.LastDllError = ERROR_ALREADY_EXISTS) Then
            'More than one instance detected
            MsgBox "More than one instance"
        Else
        Form1.Show
            'No other instance detected...
            'Your program-load code here
        End If
    End Sub
    讨论过一千次了。
      

  2.   

    '检测是否已运行
        If App.PrevInstance Then
            MsgBox App.Title + " 已运行!"
            End
        End If
      

  3.   

    我用“ljhdi()”有也可以实现嘛,而且这个还简单!我再来试试 “laviewpbt(人一定要靠自己)” 的方法
      

  4.   

    我用“ljhdi()”有也可以实现嘛,而且这个还简单***他的方法对于同一个exe文件是有效的。如果这个exe在不同的目录中有两份再运行,那个方法就不行了。最终还是要API
      

  5.   

    恩,ljhdi()的方法是最简单的,但不彻底,但是请尝试下面的操作
    打开EXE文件---》修改EXE文件名---》双击EXE文件,看到没,又一个窗口弹出来了。
    或者
    打开EXE文件---》拷贝EXE文件到另外一处---》双击移动后的EXE文件,看有什么结果
    再用互斥体试试上面的操作,看有没有这个问题。
      

  6.   

    晕倒~ 偶还以为是 一个程序只能在一台电脑里运行一次,第2次运行后就不能运行(也就是一次性程序) 呵呵,这样的话 使用 laviewpbt兄的方法 建立一个 互斥体 是最理想的方法,这样即使以不同用户身份登录也不能同时运行
      

  7.   

    很简单,随手在系统的某个角落下上“到此一游”就行了。
    每次运行,先看看有没有这个记号咯。
    你可以在注册表、文件、数据库、INI、.....等等N个角落里做。
      

  8.   

    laviewpbt(人一定要靠自己)老兄的是系统只能运行一次,如果关闭后,再运行的话就不允许了是吧,这个不错,我收藏了,待以后再用,实在是太感谢了。关于ljhdi()老兄的正合我现在的意思,用了,谢谢!