vc中应该如何向窗口发送组合键消息

已经有窗口句柄,只是用windows API谢谢比如说 Ctrl+‘s✀
2024-11-29 08:47:21
推荐回答(2个)
回答1:

SendKeys.Send("^+{TAB}"); 题目永远不在于如何应用思维里产生极新的、发明性的思惟,而在于如何从思维里镌汰旧观念。SendKeys.Send("^+{TAB}");没有风波,就不克不及显示帆的本质;没有盘曲,就无法咀嚼人生的乐趣。应用SendKeys将键击和组合键击发送到活动应用法度。此类无法实例化。若要发送一个键击给某个类并立即持续法度流,请应用Send。若要守候键击启动的任何过程,请应用SendWait。
每个键都由一个或多个字符默示。若要指定单个键盘字符,请应用该字符本身。例如,若要默示字母 A,请将字符串“A”传递给办法。若要默示多个字符,请将各个附加字符追加到它之前的字符的后面。若要默示字母A、B和C,请将参数指定为“ABC”。
加号(+)、插入符号(^)、百分号(%)、波浪号(~)以及圆括号()对 SendKeys 具有特别含义。若要指定这些字符中的某个字符,请将其放在大括号 ({}) 内。例如,若要指定加号,请应用“{+}”。若要指定大括号字符,请应用“{{}”和“{}}”。中括号 ([ ]) 对 SendKeys 没有特别含义,但必须将它们放在大括号内。在其他应用法度中,中括号具有特别含义,此含义可能会在产活泼态数据互换(DDE)时起首要感化。
若要指定在按键(如ENTER或TAB)时不显示的字符,以及默示操纵而不默示字符的键,请应用下表中的代码: 键 代码
BACKSPACE {BACKSPACE}、{BS} 或 {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL 或 DELETE {DELETE} 或 {DEL}
DOWN ARROW(下箭头键) {DOWN}END {END}ENTER {ENTER} 或 ~ESC {ESC}HELP {HELP}
HOME {HOME}
INS 或 INSERT {INSERT} 或 {INS}
LEFT ARROW(左箭头键) {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}(保存供将来应用)
RIGHT ARROW(右箭头键) {RIGHT}
SCROLL LOCK {SCROLLLOCK}TAB {TAB}UP ARROW(上箭头键) {UP}F1 {F1}F2 {F2}F3 {F3}F4 {F4}F5 {F5}F6 {F6}F7 {F7}F8 {F8}F9 {F9}F10 {F10}F11 {F11}F12 {F12}F13 {F13}F14 {F14}F15 {F15}F16 {F16}数字键盘加号 {ADD}
数字键盘减号 {SUBTRACT}
数字键盘乘号 {MULTIPLY}
数字键盘除号 {DIVIDE}
若要指定与SHIFT、CTRL和ALT键的随便率性组合一路应用的键,请在这些键代码之前加上以下一段或多段代码。 键 代码SHIFT +CTRL ^ALT %若要指定在按一些键时应同时按住SHIFT、CTRL和ALT键的随便率性组合,请将这些键的代码放在括号内。例如,若要指定按E和C时同时按住SHIFT键,请应用“+(EC)”。若要指定按E时应按住SHIFT,之后按C时不按住 SHIFT,请应用“+EC”。
要指定反复的键,请应用 {键数字} 的情势。键和数字之间必须放一空格。例如,{LEFT 42} 默示按左箭头键 42 次;{h 10} 默示按H 10次。

回答2:

详情请看参考资料,他说的是alt键
而ctrl键的虚拟键值为VK_CONTROL,换一下就行了。