近段时间,需要写一个小功能,就是需要判断程序是否已经运行。
某个程序安装后,也许被多个用户运行。那怎样判断当前用户已经运行了此程序了呢?
下面是Insus.NET的做法,就是:
《VB.NET WinForm获取运行程序用户名》http://www.cnblogs.com/insus/p/5194839.html
然后:
《WinForm(VB.NET)获取当前登录的用户名》http://www.cnblogs.com/insus/p/5195126.html
从上面的方法,如果二者的值相同,那此程序已经被当前用户运行。
源代码:
Public Shared Function IsRunning(processName As String) As BooleanDim btnIsRun As Boolean = FalseDim owner As String = GetProcessOwner(App)Dim po As String = owner.Substring(owner.LastIndexOf("\") + 1)TryDim listProc() As System.Diagnostics.ProcesslistProc = System.Diagnostics.Process.GetProcessesByName(processName)If listProc.Length > 0 AndAlso GetUserName() = po ThenbtnIsRun = TrueElsebtnIsRun = FalseEnd IfCatch ex As ExceptionbtnIsRun = FalseEnd TryReturn btnIsRunEnd Function