通过SendMessage()如何发送‘Ctrl+鼠标左键’的组合消息啊???急!!! 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先发送ctrldown的消息,再发送lbuttondown消息,在发送lbuttonup消息最后发送ctrlup消息~~ 或者你可以使用keydb_event mouse_event按照上面那种顺序做就可以了 下面的代码是模拟Ctrl+C和Ctrl+V: //Ctrl+C:keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), 0, 0);keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), KEYEVENTF_KEYUP, 0);keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0)//Ctrl+V:keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);keybd_event(Ord('V'), MapVirtualKey(Ord('V'), 0), 0, 0);keybd_event(Ord('V'), MapVirtualKey(Ord('V'), 0), KEYEVENTF_KEYUP, 0);keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0)**************************按下一个键最好用SendMessage,用sndkey32.pas无疑会增加程序尺寸。组合键(超过两个以上)用sndkey32.pas就显出优势来了。另一种解决方法,下例模拟按下Alt+Down,可参见Delphi SDK的帮助:keybd_event( VK_MENU, MapVirtualKey( VK_MENU, 0 ), 0 , 0 ); // Alt downkeybd_event( VK_DOWN, MapVirtualKey( VK_DOWN, 0 ), 0 , 0 ); // down arrow key downkeybd_event( VK_DOWN, MapVirtualKey( VK_DOWN, 0 ), KEYEVENTF_KEYUP , 0 ); // down arrow key upkeybd_event( VK_MENU, MapVirtualKey( VK_MENU, 0 ), KEYEVENTF_KEYUP , 0 ); // Alt key up让 WIN95 模拟按了一个按键,例如按下 ENTER或者 TAB 键?PostMessage(Object.Handle, WM_KEYDOWN, VK_TAB, 0);换成你要的就行 如何让activex插件自动上传js指定的文件 这个界面用到哪些控件? 简单的数据库问题 ***急*** 加载三层树的问题 delphi界面 请教DBGridEh的输入保存数据问题 结构指针地址值转换 如何判断一个数据库中存在一个指定的存储过程呢?? 怎样让ScrollBox响应鼠标滚轮的滚动?_...*((要求贴代码). 紧急!一个关于Dbgrid的问题 连接delphi的数据库 续:谁有playicq的白金会员账号!高分相送,Up有分!
最后发送ctrlup消息~~ 或者你可以使用keydb_event mouse_event按照上面那种顺序做就可以了
//Ctrl+C:keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), 0, 0);keybd_event(Ord('C'), MapVirtualKey(Ord('C'), 0), KEYEVENTF_KEYUP, 0);keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0)//Ctrl+V:keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);keybd_event(Ord('V'), MapVirtualKey(Ord('V'), 0), 0, 0);keybd_event(Ord('V'), MapVirtualKey(Ord('V'), 0), KEYEVENTF_KEYUP, 0);keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0)**************************按下一个键最好用SendMessage,用sndkey32.pas无疑会增加程序尺寸。组合键(超过两个以上)用sndkey32.pas就显出优势来了。另一种解决方法,下例模拟按下Alt+Down,可参见Delphi SDK的帮助:keybd_event( VK_MENU, MapVirtualKey( VK_MENU, 0 ), 0 , 0 ); // Alt downkeybd_event( VK_DOWN, MapVirtualKey( VK_DOWN, 0 ), 0 , 0 ); // down arrow key downkeybd_event( VK_DOWN, MapVirtualKey( VK_DOWN, 0 ), KEYEVENTF_KEYUP , 0 ); // down arrow key upkeybd_event( VK_MENU, MapVirtualKey( VK_MENU, 0 ), KEYEVENTF_KEYUP , 0 ); // Alt key up让 WIN95 模拟按了一个按键,例如按下 ENTER或者 TAB 键?PostMessage(Object.Handle, WM_KEYDOWN, VK_TAB, 0);换成你要的就行