| 网站首页 | VB.Net实例分析 | .Net技术文摘 | 下载中心 | VB.Net书籍笔记 | .Net源码 | VBS脚本与组件调用 | Windows2008技术文摘 | 给我们留言 | 
最新公告:

  没有公告

您现在的位置: 乐博网 >> VB.Net开发技巧 >> 技术文摘正文
最新推荐 更多内容
VB.Net互斥实现单程序运行的方法[乐博网原创]
VB.Net互斥实现单程序运行的方法[乐博网原创]
作者:Iva    来源:乐博网     更新时间:2011-2-18

本文提供一些关于程序互斥的思路。注:此文章为本站(Lob.cn)乐博网原创,可以自由转载和传播,但希望能保留本站的作者和信息来源,谢谢!如果大家对此问题或者关于“VB.Net操作注册表”的话题感兴趣,就一起SmallBasic.cn 快乐编程讨论把他做得更完善吧!

VB.Net互斥 简单代码:

本文中举例程序名均为"乐博网.exe"

Imports   System.Diagnostics

If UBound(Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName)) > 0 Then Me.Dispose()

不难看出,以上方法只能检测当前进程列表中是否已经存在"乐博网.exe"这个进程,如果存在则自动阻止再次运行;而如果应用程序名从"乐博网.exe"改为"lob.cn.exe"或者其他文件名,则检测无效。乐博网提供思路和实现需要的相关代码。检测该进程对应的程序的md5数值,来判断唯一性,检测时加入阻止与当前进程中具有相同md5数值的程序加载,这样就更完美了。

乐博网附文件md5的代码:

    Public Function MD5CalcFile(ByVal filepath As String) As String

        Using reader As New System.IO.FileStream(filepath, IO.FileMode.Open, IO.FileAccess.Read)
            Using md5 As New System.Security.Cryptography.MD5CryptoServiceProvider

                Dim hash() As Byte = md5.ComputeHash(reader)
                Return ByteArrayToString(hash)

            End Using
        End Using   

    End Function

    Private Function ByteArrayToString(ByVal arrInput() As Byte) As String

        Dim sb As New System.Text.StringBuilder(arrInput.Length * 2)

        For i As Integer = 0 To arrInput.Length - 1
            sb.Append(arrInput(i).ToString("X2"))
        Next  '更多vb.net源代码和实例,请关注乐博网lob.cn

        Return sb.ToString().ToLower

    End Function

乐博网附:获取当前启动程序的绝对路径

path_lob =  Application.ExecutablePath

乐博网附:获取进程中程序的绝对路径

Imports System.Management      ' lob.cn提示  System.Management要“添加引用”

  Dim CommandLine
        Dim Searcher As New ManagementObjectSearcher("Root\CIMV2", "Select * From Win32_Process where Name ='乐博网.exe'")
        For Each QueryObj As ManagementObject In Searcher.Get()

            CommandLine = QueryObj("CommandLine")  

            MsgBox("乐博网.exe的绝对路径为" & CommandLine)

        Next

==========================结束

  • 上一篇:

  • 下一篇:
  • 【字体: 】【打印此文】【关闭窗口
      相关文章:(只显示最新16条)
    没有相关技术文摘

    | 设为首页 | 加入收藏 | 联系站长 | | 友情链接 | 版权申明 |
    乐博网欢迎各种媒体转载我们的原创作品[转载请注明出处];我们鼓励更多VB.Net开发者一起加入研究与探讨;如发现文章访问错误、内容错误或版权疑问、内容有违相关法律(如涉及政治、色情、反动或散布虚假有害信息)等情况,请及时向我们举报,我们将及时纠正!
    联系邮箱:Shiny#vip.qq.com (#替换为@) QQ交流群: 40797788 [闽ICP备05014267号]