2015-11-04 78 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

我已经设法排除了使用国际键盘并获得不同结果的最后部分。我不太熟悉将配置添加到文件中,但肯定会给你一个重击,看看它是怎么回事!去查看你在这里提到的所有东西! :) –

相关问题