○RemoteApp の動作について
・「RDPShell」が起動している
'''
''' RemoteAppで起動しているか判定
'''
'''
'''
Public Function IsRemoteApp() As Boolean
Try
Using mos As New System.Management.ManagementObjectSearcher( _
String.Format( _
"SELECT * FROM Win32_Process WHERE Name LIKE 'RDPSHELL.EXE'"))
Using moc As System.Management.ManagementObjectCollection = mos.[Get]()
For Each mo As System.Management.ManagementObject In moc
Using mo
'プロセスIDを取得する
Dim processId As Integer = Convert.ToInt32(mo("ProcessId"))
Dim name As String = mo("Name").ToString()
Try
Dim methodName(1) As String
mo.InvokeMethod("GetOwner", methodName)
Dim user As String = methodName(0)
Dim domain As String = methodName(1)
If user = Nothing Then user = ""
If user.ToUpper() = System.Environment.UserName.ToUpper() Then
Return True
End If
Catch ex As Exception
End Try
End Using
Next
End Using
End Using
Catch ex As Exception
End Try
Return False
End Function
'''
''' RemoteAppで起動しているか判定
'''
'''
'''
Public Function IsRemoteApp() As Boolean
Try
Dim mc As New System.Management.ManagementClass("Win32_Process")
Dim moc As System.Management.ManagementObjectCollection = mc.GetInstances()
Dim mo As System.Management.ManagementObject
For Each mo In moc
Dim id As String = mo("ProcessId").ToString()
Dim name As String = mo("Name").ToString()
Try
If name.ToUpper() = "RDPSHELL.EXE" Then
Dim methodName(1) As String
mo.InvokeMethod("GetOwner", methodName)
Dim user As String = methodName(0)
Dim domain As String = methodName(1)
If user = Nothing Then user = ""
If user.ToUpper() = System.Environment.UserName.ToUpper() Then
Return True
End If
End If
Catch ex As Exception
End Try
Next mo
Catch ex As Exception
End Try
Return False
End Function