2013-10-17 70 views
0

我想:的Visual Basic 2010 - Alt + Tab鍵的替代

  1. 集 「你好!」剪貼板上
  2. ALT標籤將持續激活的窗口(例如記事本等)
  3. 貼什麼是剪貼板上

我把它實現的工作方式,但不完美;它適用於大部分時間,其他時間,它根本不會執行第2步。 我嘗試了其他事件,如「Click」,「MouseUp」以及您可以在下面看到的「MouseClick」。 是否有任何替代方法來實現alt +選項卡? 沮喪,需要你的幫助。謝謝!


我導入了「System.Threading」。 示例代碼:

Private Sub try1_click(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles try1.MouseClick 
     Clipboard.Clear() 'clears the clipboard 
     Clipboard.SetText("Hello!") 
     SendKeys.Send("%{Tab}") 
     Thread.Sleep(500) 
     SendKeys.SendWait("+{Insert}") 
     SendKeys.Send("{Enter}") 

    End Sub 

回答

0

首先存儲當前活動窗口的進程名以後激活它,你可以將其存儲在一個字典,列表或元組或其他任何東西。

然後使用AppActivate激活您想要的窗口,而不是嘗試發送選項卡鍵以嘗試返回上一個活動窗口。

#Region " App Activate " 

' [ App Activate ] 
' 
' // By Elektro [email protected] 
' 
' Examples : 
' 
' App_Activate("notepad") 
' App_Activate("notepad.exe") 

Private Sub App_Activate(ByVal ProcessName As String) 

    ProcessName = If(ProcessName.ToLower.EndsWith(".exe"), _ 
        ProcessName.Substring(0, ProcessName.LastIndexOf(".")), _ 
        ProcessName) 

    AppActivate(Process.GetProcessesByName(ProcessName).FirstOrDefault.Id) 

End Sub 

#End Region 
+1

這很好地實現。非常感謝Elektro Hacker! – user2889072

+0

@ user2889072謝謝,如果代碼已解決您的問題,請隨時將答案標記爲「已接受」。 – ElektroStudios

0

的SendKeys有第二種方法,你應該嘗試:

SendKeys.SendWait() 

的問題是發送()將郵件隊列中,並繼續上,而SendWait()將暫停,直到消息被處理Windows消息隊列。

+0

非常感謝您的意見,史蒂夫!我會給這一槍! – user2889072