TC官方合作论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: 剑仙十号

[BUG反馈] TC的线程暂停(thread_id),,线程恢复(thread_id),,做得很差,线程暂停了不能恢复运行.

[复制链接]
 楼主| 发表于 2015-7-22 09:43:38 | 显示全部楼层
TC 发表于 2015-7-20 18:35
可以私聊我,发一个您的联系QQ给我吗


我要道歉。昨天仔细看下代码,原来是我的代码写错了。

TC的多线程,,,,线程暂停(thread_id),,线程恢复(thread_id),,做得很好。
稳定而高效率。

改正后的代码发在下一楼。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-22 09:48:03 | 显示全部楼层

//做连发键的脚本,改键连发。Z键改数字1,X键改数字2。
//新建立一个脚本,代码全部粘贴,覆盖原来的代码就可以了。


var hThread,hThread1,hThread2 //设置全局变量.相当于按键精灵的环境变量.

function 启动_热键()   
  //按热键F8,开户线程1 线程2,并返回线程句柄.
  hThread=threadbegin("主程序","")
  sleep(30)
  hThread1=threadbegin("连发键1","")
  sleep(30)
  threadsuspend(hThread1)//暂停线程1.
  hThread2=threadbegin("连发键2","")
  sleep(30)
  threadsuspend(hThread2)//暂停线程2.
End

function 主程序() //主线程函数.
  var QQ1,QQ2,mykey1=49,mykey2=50  //连发键,是主键盘上的1和2.
  while(true)//循环1开始.         
    QQ1 = dllcall("user32.dll","long", "GetAsyncKeyState","long",mykey1)//调用Win32 的API函数,读取按键状态.
    QQ2 = dllcall("user32.dll","long", "GetAsyncKeyState","long",mykey2)//调用Win32 的API函数,读取按键状态.
   
    if(QQ1!=0)
      traceprint("恢复线程1.")
      threadresume(hThread1)//恢复线程2.
      sleep(10)//下面开始用GetAsyncKeyState,判断数字1,有无弹起.
      
      while(QQ1!=0)  //小循环开始.
        QQ1 = dllcall("user32.dll","long", "GetAsyncKeyState","long",mykey1)//调用Win32 的API函数,读取按键状态.
        sleep(50)  //等待50毫秒会一直循环,直到放开数字"1".
      end //小循环结束.
      traceprint("暂停线程1.")
      threadsuspend(hThread1)//暂停线程2.
      sleep(10)
    end        
   
    if(QQ2!=0)
      traceprint("恢复线程2.")
      threadresume(hThread2)//恢复线程2.
      sleep(10)//下面开始用GetAsyncKeyState,判断数字2,有无弹起.
      
      while(QQ2!=0)  //小循环开始.
        QQ2 = dllcall("user32.dll","long", "GetAsyncKeyState","long",mykey2)//调用Win32 的API函数,读取按键状态.
        sleep(50)  //等待50毫秒会一直循环,直到放开数字"2".
      end //小循环结束.
      traceprint("暂停线程2.")
      threadsuspend(hThread2)//暂停线程2.
      sleep(10)
    end   
   
  end//循环1结束.   
end

function 连发键1()//线程1函数.
  while(true)
    keypress(90)        
    sleep(10)
  end
end

function 连发键2()//线程2函数.
  while(true)
    keypress(88)        
    sleep(10)
  end
end

function 终止_热键()   
  //按热键F9,关闭主线程,线程1,线程2.
  threadclose(hThread)
  threadclose(hThread1)
  threadclose(hThread2)
end
回复 支持 反对

使用道具 举报

发表于 2016-2-4 01:51:24 | 显示全部楼层
问题解决了吗?我的也不行..
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-19 15:19 , Processed in 0.032589 second(s), 18 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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