2015-08-03 28 views
0

對於我的應用程序要關閉特定的進程(屏幕上的鍵盤/ osk.exe)當文本框失去焦點。我以爲我可以迭代所有進程並查找osk.exe,並在找到它時查找它。獲得的進程列表退出我的每個第一個進程後發現

我做了如下:

Dim psList() As Process 

     psList = Process.GetProcesses() 

     For Each p As Process In psList 
      If p.ProcessName = "osk.exe" Then 
       p.Kill() 
      End If 
     Next p 

雖然在第一次發現過程將退出每個出於某種原因。在我的情況下,這是在展望過程中,只是爲了測試,我試圖關閉前景,但隨後在下面的過程中退出。

四下尋找它的解釋,但沒能找到。不是一個問題

回答

3

更多。刪除首先吞下異常的Try/Catch。進程名稱是「osk」,而不是「osk.exe」。而且這段代碼很可能會因爲使用一個每個進程都無法訪問的屬性而異常消失。

是選擇性的避免這個問題:

Dim psList = Process.GetProcessesByName("osk") 
    For Each p As Process In psList 
     p.Kill() 
    Next 
+0

謝謝!只是在我的帖子後發現了它,不過謝謝! – Nicolas

相關問題