我有一个代码通过发送ctrl + v(见下文)触发PASTING到任何第三方应用程序,但这似乎不适用于CITRIX。是否有任何其他方法来触发ctrl + v而不是keyb模拟?
keybd_event(VK_CONTROL, Lo(MapVirtualKey(VK_CONTROL,0)), 0,0);
keybd_event(86, Lo(MapVirtualKey(86,0)), 0,0);
keybd_event(86, Lo(MapVirtualKey(86,0)), KEYEVENTF_KEYUP,0);
答案 0 :(得分:3)
也许,您可以向应用程序发送WM_PASTE消息吗?
答案 1 :(得分:1)
啊,Citrix的好问题!
答案 2 :(得分:0)
您可以尝试PostKeyEx32
我用葡萄牙语写了一篇文章,但你可以阅读代码,很简单。
http://www.cesarromero.com.br/simulando-keypress-com-postkeyex32/
您可以像这样发送CTRL + Vm:
PostKeyEx32(Ord('V'), [ssCtrl], False);
答案 3 :(得分:0)
我认为这里的批评声明是 - 与CITRIX。
我与citrix应用程序进行内部通信的经验是,许多在普通桌面上正常工作的东西在Citrix环境中运行时会失败。我会首先尝试发送一个WM_PASTE消息,如Gamecat建议的那样,如果失败,您可能希望确保您的客户端通过Citrix桌面运行您的应用程序,而不是直接从桌面上的快捷方式运行应用程序。从外部快捷方式启动Citrix应用程序时,它会获得与从Citrix桌面上的内部快捷方式启动时不同的会话。