2012-05-17 115 views
1

你好,我想用我的應用程序按下按鈕。所以我用SendKeys類如何刪除SendKeys.SendWait上的延遲?

SendKeys.SendWait("{RIGHT}"); 

問題是,我需要從系統反應這行代碼後等待3-4秒。我怎樣才能加快速度,或者我怎樣才能刪除這個延遲?

//更新1 我也試過

SendKeys.SendWait("{RIGHT}"); 
SendKeys.Flush(); 

但ID沒有幫助

//更新2

我想我的應用程序在後臺運行,按一個按鈕編程式地處於用戶的實際活動狀態。所以如果他在excel中,我想要右箭頭移動活動單元格,如果他在遊戲中我想右轉等SendWait做我想要的東西,但有一些我不想要的延遲。

第二件重要的事情,這不是病毒或蠕蟲或類似的東西。首先,正如你所看到的,我太愚蠢了,其次,我正在玩我的KInect,所以這是用戶和計算機之間的某種互動。這就是爲什麼它在後臺運行,這就是爲什麼我需要將其發送到用戶的活動應用程序

+0

爲什麼不直接使用'.Send'? –

+0

原因我得到InvalidOperationException和來自我的VS的註釋「SendKeys無法在此應用程序內運行,因爲應用程序沒有處理Windows消息。請更改應用程序以處理消息或使用SendKeys.SendWait方法。 – Fixus

+0

您嘗試將密鑰發送到哪種類型的應用程序?請在您的問題中包含儘可能多的細節。 –

回答

1

SendKeys是Windows窗體應用程序的一個很好的小功能。根據你的標籤,似乎你正在使用的Windows Presentation Foundation,這將不支持SendKeys.Send()

https://stackoverflow.com/a/1646568/340574

在鏈路上面搭一看就使用KeyEventArgs。我讀過,你也可以通過Visual Studio添加對System.Windows.Forms.dll的引用來使用SendKeys,但我沒有嘗試過。

+1

的好例子,你能幫我用這段代碼嗎?在線PresentationSource.FromVisual(目標),我得到'System.Windows.PresentationSource.FromVisual(System.Windows.Media.Visual)'的最佳重載方法匹配'有一些無效的參數 – Fixus

+0

@Fixus我面臨完全相同的問題。你找到了替代方案嗎? – OscarRyz

+0

不幸的不是。我的運氣,我可以承受一些延誤 – Fixus