delphi中组合键代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中组合键代码相关的知识,希望对你有一定的参考价值。

谁有delphi中组合键代码。我想查下ctrl+tab。

参考技术A Ctrl 一般要单独来判断,没有虾米组合代码...
例如要TForm来判断Ctrl+Tab,需要响应OnKeyDown事件:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssCtrl in Shift) and (Key = VK_TAB) then
ShowMessage('OK');
end;
如果焦点不在Form上,那上面的代码就不好使了。
如果想截获所有键盘信息,得用Delphi蛋疼的ApplicationEvents,因为Delphi把重要的消息循环给藏起来了...
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if (Msg.message = WM_KEYDOWN) and (Msg.wParam = VK_TAB) and (GetKeyState(VK_CONTROL) < 0) then
ShowMessage('OK');
end;
参考技术B if (GetKeyState(VK_CONTROL) and 128 = 128) and (GetKeyState(VK_TAB) and 128 = 128)
then edit1.text := 'true'
else edit1.text := 'false';

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

已经有窗口句柄,只是用windows API
谢谢
比如说 Ctrl+‘s'

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(下箭头键) DOWNEND ENDENTER ENTER 或 ~ESC ESCHELP 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 SCROLLLOCKTAB TABUP ARROW(上箭头键) UPF1 F1F2 F2F3 F3F4 F4F5 F5F6 F6F7 F7F8 F8F9 F9F10 F10F11 F11F12 F12F13 F13F14 F14F15 F15F16 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次。
参考技术A 详情请看参考资料,他说的是alt键
而ctrl键的虚拟键值为VK_CONTROL,换一下就行了。

参考资料:http://blog.csdn.net/pjl1119/article/details/6914902

本回答被提问者采纳

以上是关于delphi中组合键代码的主要内容,如果未能解决你的问题,请参考以下文章

在Delphi中 如何在字符串中表示 CTRL+ENTER 组合键?

Delphi : keydown与keypress的区别,组合键

delphi 中怎么向一个非活动窗口发送组合键

delphi 中 实现 ctrl + A~Z 和 Alt + A~Z 组合键的拦截

delphi 中 实现 ctrl + A~Z 和 Alt + A~Z 组合键的拦截

Delphi7:快捷键