2016-02-26 44 views
0

我在公司生產環境中有一臺PC,需要確保同一程序反覆加載。我升級到Windows 7,由於MacAfee,我的啓動程序一直在失去焦點。我試圖卸載MacAfee,但它是一個企業版本,它不會讓我。我試圖在我的vb.net應用程序中做一些編程來重新獲得焦點,但沒有任何工作。我如何關注表單?

這裏的程序是如何啓動的圖片了 - 注意形式是更淺的顏色,並已失去焦點: http://i.imgur.com/Qwlzuzw.jpg

這裏的形式應該怎麼後加載的圖片我點擊它與鼠標修復它 - 注意形式的較深的顏色: http://i.imgur.com/DuLyCsC.jpg

這就是爲什麼我認爲麥克菲的問題 - 如果我的ALT標籤,將麥克菲更新圖標顯示出來: http://i.imgur.com/opgOWHW.jpg

一ny想法以編程方式或以其他方式解決我的問題?

回答

1

這裏有一個獲取前臺窗口句柄,如果它不是我的定時器示例代碼,使我

Private Declare Function GetForegroundWindow Lib "user32"() As IntPtr 
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As IntPtr) As Long 

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick 
    Dim focusedWindow As System.IntPtr 
    focusedWindow = GetForegroundWindow() 
    If Not Me.Handle.Equals(focusedWindow) Then 
     SetForegroundWindow(Me.Handle) 
    End If 
End Sub 
+0

您可能可以取消Timer並使用Form.Deactivate事件。 – TnTinMn

+0

這似乎工作正常,解決了我的問題。謝謝! –

0

在form1.shown子寫:

For i = 0 To 100 
    Me.Activate() 
Next 

這將嘗試當它出現時,100次關注你的表單。