你可以先定义Ctrl+C的热键,然后判断:
比如:
定义:
RegisterHotKey( Handle, GlobalAddAtom('hotkey2'), 0, vk_F2);procedure TMainMenuFrm.WMHotKey(var Message: TWMHOTKEY);
begin
//定义热键事件
case Message.HotKey of
比如:
定义:
RegisterHotKey( Handle, GlobalAddAtom('hotkey2'), 0, vk_F2);procedure TMainMenuFrm.WMHotKey(var Message: TWMHOTKEY);
begin
//定义热键事件
case Message.HotKey of
解决方案 »
- Private Sub Worksheet_SelectionChange(ByVal Target As Range)' 怎么用,在线等!
- 有没有做社会保险行业软件的兄弟啊,留个联系方式吧?
- 日历控件
- (50分)急!!!我做图像放大后的图像(bmp)执行时只显示下半部分,可在画图工具及vc中都可全部显示,why?(在线等待)
- 关于Edit1的OnKeyPress事件的问题
- 求购工程软件中的横道图组件...
- 出几千元寻求超市管理软件?
- delphi 高手请进来吧,这里有人请教您
- 怎样把测试一个popmenu是否已经弹出???????????
- fcdbtreeview谁用过,有时间会出现重复显示现象怎么解决?
- [在线等候100分]***关于重新登录窗口ShowModal***
- 难题:例如知道form2,我在form1的button1click里动态在form2上创建一个button.....
procedure TForm1.AppMessage(var Msg: TMsg; var Handled: boolean);Appmessage是TMessageEvent类型的。
当msg.message=WM_KEYDOWN时
Msg.wParam是多少
procedure SendKey(H: Hwnd; Key: char);
var vKey, ScanCode, wParam: Word;
lParam, ConvKey: longint;
Shift, Ctrl: boolean;
begin
ConvKey:= OemKeyScan(ord(Key));
Shift:= (ConvKey and $00020000) <> 0;
Ctrl:= (ConvKey and $00040000) <> 0;
ScanCode:= ConvKey and $000000FF or $FF00;
vKey:= ord(Key);
wParam:= vKey;
lParam:= longint(ScanCode) shl 16 or 1;
if Shift then SendShift(H, true);
if Ctrl then SendCtrl(H, true);
SendMessage(H, WM_KEYDOWN, vKey, lParam);
SendMessage(H, WM_CHAR, vKey, lParam);
lParam:= lParam or $C0000000;
SendMessage(H, WM_KEYUP, vKey, lParam);
if Shift then SendShift(H, false);
if Ctrl then SendCtrl(H, false);
end;