2015-11-04 40 views
0

我正嘗試使用SendKey事件將上下文菜單發送至我在應用程序中所處的屏幕部分。該應用程序是基於citrix的。我正在嘗試使用sendkeys,因爲它們在指定某個特定位置的鼠標時非常可靠。如果這是不可能的,那也是很好的理由,同時我會盡我所能去追求它。將SendKey發送至Citrix應用程序

到目前爲止,我已經使用「{+ F10}」的想法嘗試,但只是產生屏幕上的值9,和我已經嘗試了很多這樣的變化以及像

"<={F10}>=" to simulate pressing shift up and down 
"+={F10}" 
"++{F10}" 
"+{F10}""s" 
"+{F10}s" 

,但所有的這些導致明文被髮送,像'9','='或'0'這樣的值就是我在這些情況下看到的。如果任何人有任何洞察力,將不勝感激。

回答

1

SendKeys.SendWait("+{F10}"); 應該是按shift + F10的正確語法。 如果你想按[shift + F10 + s] SendKeys.SendWait("+({F10}s)");是你的朋友。

如前所述hereWindows Input Simulator是相比於基於的SendKeys思傑系統更可靠。你應該試試看。


的附加軟件的SendKeys: 按照docu的SendKeys有一個老一新的版本。請嘗試兩個,因爲它可能有幫助。 默認情況下,SendKeys使用舊版本,但如果失敗,則回退是新版本。 執行新版本添加以下到您的app.config:

<appSettings> 
<add key="SendKeys" value="SendInput"/> 
</appSettings> 

您也可以嘗試通過強制執行舊的實現:「JournalHook」的價值。

有一個在實況進一步此言它說:

如果你的應用是用於與各種鍵盤的國際使用,使用發送的可能產生不可預知的結果,應當避免。

不確定這是否適用於您。

你可以選擇的更多替代品是AutoItUIAutomation,可能需要更多時間來挖掘它。

+0

我已經設法排除了使用國際鍵盤並獲得不同結果的最後部分。我不太熟悉將配置添加到文件中,但肯定會給你一個重擊,看看它是怎麼回事!去查看你在這裏提到的所有東西! :) –

相關問題