0
我有一些代碼,我在這個網站,這似乎極大的大部分時間工作中。獲取進程所有者返回一個錯誤在VB
下面是代碼:
Private Function GetProcessOwner(processId As Integer) As String
Try
Dim query = "Select * From Win32_Process Where ProcessID = " & processId
Dim searcher = New ManagementObjectSearcher(query)
Dim processList = searcher.Get()
For Each obj As ManagementObject In processList
Dim argList As String() = {String.Empty, String.Empty}
Dim returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList))
If returnVal = 0 Then
Return argList(1) & "\" & argList(0)
End If
Next
Catch ex As Exception
End Try
Return ""
End Function
不過,有時我得到這樣的:
RuntimeCallableWrapper avec l'erreur suivante : Un appel sortant ne peut pas être effectué étant donné que l’application répartit un appel entrant synchrone. (Exception de HRESULT : 0x8001010D (RPC_E_CANTCALLOUT_ININPUTSYNCCALL)). Cela se produit habituellement car le contexte COM 0x78e910 dans lequel ce RuntimeCallableWrapper a été créé a été déconnecté ou est occupé à autre chose et ne peut pas traiter la transition des contextes. Aucun proxy ne sera utilisé pour traiter la demande sur le composant COM. Cela peut entraîner des dysfonctionnements ou des pertes de données. Pour éviter ce problème, assurez-vous que tous les contextes/cloisonnements/threads COM restent actifs et sont disponibles pour la transition des contextes, tant que l'application n'en a pas terminé avec les RuntimeCallableWrappers qui représentent les composants COM qui s'y trouvent.
它在法國,但我無法真正瞭解它在我自己的語言,所以我不能真的翻譯。誰能告訴我,我做錯了,做什麼來糾正呢?
我發現有另一種方法來獲得流程所有者(http://www.codeproject.com/Articles/14828/How-To-Get-Process-Owner-ID-and-Current-User-SID) ,但它是在C#中,整個項目在VB中。另外,當我複製的代碼,我得到這個詞HANDLE編譯錯誤。我不介意使用此代碼,但我不能讓它工作
任何人可以幫助我嗎?
Thsnks
事情是,它總是發生,即使我剛剛重新啓動我的電腦。好像別的東西在做。 –