搜索
aardio官方社区 门户 查看主题

快捷键发送按键组合问题 3种方式发送

发布者: chinafla | 发布时间: 2012-12-19 18:30| 查看数: 3095| 评论数: 4|帖子模式

3组快捷键 作用都是发送 CTRL+V
CTRL+1
ALT+1
ALT+2

但是只有 CTRL+1 和 ALT+2 有效
ALT+2 有效是因为加了延迟

能不能不加延迟 也能使用

就是怎么改才能让 ALT+1生效

这个问题自己研究了两天都还没解决,谢谢大家了。
  1. import key;
  2. import win.ui;
  3. import win.clip;
  4. /*DSG{{*/
  5. var winform = ..win.form( bottom=380;parent=...;text="aardio Form";right=612 )
  6. winform.add(
  7. static={ notify=1;text="3组快捷键 CTRL+1 ALT+1 ALT+2 作用为发送 CTRL+V";left=66;top=309;transparent=1;bottom=350;right=531;z=2;cls="static" };
  8. edit={ bottom=289;right=557;left=47;multiline=1;top=46;z=1;edge=1;cls="edit" }
  9. )
  10. /*}}*/

  11. winform.static.oncommand = function(id,event){
  12.         //winform.msgbox( winform.static.text );
  13.         
  14.         
  15. }


  16. winform.edit.setFocus();

  17. winform.reghotkey( function(id,mod,vk){ //注册热键按 CTRL+1
  18.         win.clip.write("这里是粘贴板里面的内容 来自 CTRL+1" + '\r\n');
  19.         key.combine("CTRL","V");
  20. },0x2/*_MOD_CONTROL*/,'1'#);

  21. winform.reghotkey( function(id,mod,vk){ //注册热键按 ALT+1
  22.         win.clip.write("这里是粘贴板里面的内容 来自 ALT+1" + '\r\n');
  23.         key.combine("CTRL","V");
  24. },0x1/*_MOD_ALT*/,'1'#);

  25. winform.reghotkey( function(id,mod,vk){ //注册热键按 ALT+2
  26.         win.clip.write("这里是粘贴板里面的内容 有1秒钟的延时 来自 ALT+2" + '\r\n');
  27.         key.delay(1000);
  28.         key.combine("CTRL","V");
  29. },0x1/*_MOD_ALT*/,'2'#);
  30. winform.show();
  31. win.loopMessage();
复制代码

最新评论

chinafla 发表于 2012-12-21 23:47:09

貌似这个问题难道这么多高手。。。 。。。顶顶 大家一起搞定它

貌似这个问题难道这么多高手。。。
。。。顶顶 大家一起搞定它
look 发表于 2012-12-22 00:28:29

是你选择的快捷键的执行内容不合逻辑所致; 当你按下ALT+1时,就开始执行CTRL+V了, 可是这个时候你没有足够快的速度放开ALT键, 所以实际上你

是你选择的快捷键的执行内容不合逻辑所致;

当你按下ALT+1时,就开始执行CTRL+V了,
可是这个时候你没有足够快的速度放开ALT键,
所以实际上你发送给窗口的是CTRL+ALT+V组合键!

当你按下ALT+2时,你的代码里有个延时1秒钟,
如果你在1秒钟内放开ALT键,就发送给窗口CTRL+V键,
如果你在1秒钟内没有放开ALT键,那么你实际上发送给窗口也是CTRL+ALT+V组合键!

知道原因就好了,看下面的代码是不是ALT+1就没事了?

  1. import key;
  2. import win.ui;
  3. import win.clip;
  4. /*DSG{{*/
  5. var winform = ..win.form( bottom=380;parent=...;text="aardio Form";right=612 )
  6. winform.add(
  7. static={ notify=1;text="3组快捷键 CTRL+1 ALT+1 ALT+2 作用为发送 CTRL+V";left=66;top=309;transparent=1;bottom=350;right=531;z=2;cls="static" };
  8. edit={ bottom=289;right=557;left=47;multiline=1;top=46;z=1;edge=1;cls="edit" }
  9. )
  10. /*}}*/

  11. winform.edit.setFocus();

  12. winform.reghotkey( function(id,mod,vk){ //注册热键按 CTRL+1
  13.     win.clip.write("这里是粘贴板里面的内容 来自 CTRL+1" + '\r\n');
  14.     key.combine("CTRL","V");
  15. },0x2/*_MOD_CONTROL*/,'1'#);

  16. winform.reghotkey( function(id,mod,vk){ //注册热键按 ALT+1
  17.     win.clip.write("这里是粘贴板里面的内容 来自 ALT+1" + '\r\n');
  18.     while(key.getStateX("ALT") and win.delay(1)){}//等待ALT被放开
  19.     key.combine("CTRL","V");
  20. },0x1/*_MOD_ALT*/,'1'#);

  21. winform.reghotkey( function(id,mod,vk){ //注册热键按 ALT+2
  22.     win.clip.write("这里是粘贴板里面的内容 有1秒钟的延时 来自 ALT+2" + '\r\n');
  23.     key.delay(1000);
  24.     key.combine("CTRL","V");
  25. },0x1/*_MOD_ALT*/,'2'#);

  26. winform.show();
  27. win.loopMessage();
复制代码

点评

真棒: 5.0
真棒: 5
谢谢 :)  发表于 2013-8-14 12:45

评分

参与人数 1银币 +8 收起 理由
qq317813922 + 8 赞一个!

查看全部评分

qq317813922 发表于 2016-6-4 13:52:03

又来学习了

又来学习了
taochunsong 发表于 2016-10-23 18:04:10
学习!

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2017-9-25 19:23 , Processed in 0.078125 second(s), 19 queries , WinCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表