快手软件

随机按键 与 热键激活的问题

问:

比如我打开记事本后 按下热键 就会随环按下1-5的数字键全部不重复的输完,然后换下一行接着循环。该怎么写?


tmid = winform.addtimer(1000
/*毫秒*/,function(hwnd,msg,id,time){//定时执行代码
    

    
//winform.killtimer(id)//移除此定时器
    });


时钟只能
移除。不能暂停?

帮助说明都没找到只好求帮助

 


答:

是的,时钟需要移除重建,你可以把函数定义写在外面,这样可以重复创建执行相同函数的定时器。

import win; //必须首先导入win窗口支持库
import win.ui;

/*DSG{{*/
var winform = win.form(parent=...; bottom=249;max=1;text="AAuto Form";right=349 )
winform.add(  )
/*}}*/

//类:数字键枚举器
class keyenum{

    
//构造函数
    ctor( min,max){ //指定一个最小数,一个最大数构造类
      this.mod = max-min+1;//取模
      this.n = this.mod - 1;//当前数值
    };
    
    
//取下一个键
    next = function(){
        
this.n ++
        
return tostring( this.n % ( this.mod ) + 1 );
    }
    
}

//创建对象:数字键枚举器
var keys = keyenum(1,5);


//导入键盘库
import key;
定时回调函数 = 
function(hwnd,msg,id,tick){

        
//定时执行代码 
        key.press(  keys.next() ) 
}

//创建定时器
tmid = winform.addtimer(1000/*毫秒*/,定时回调函数);
    

//显示窗体
winform.show(true
//开始消息循环
win.loopMessage(); 

===================================================

上面是基于迭代器思想,扩展思路,不仅仅是可以用来取指定范围的数字键。
取下一个是一个封装的子程序,你要怎么取下一个都可以。

解决该问题首先是把一个大问题分解成两个小问题。
1、取下一个的子程序或对象(上面的例子是定义了一个类,并用类创建枚举器对象)
2、定时按键


 

 


posted on 2010-10-01 21:50  快手软件  阅读(286)  评论(0)    收藏  举报

导航