• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

返回列表 12345678» / 10
发新话题 回复该主题

[◆2014版新教程] 制作界面一定要会的几个Api函数2016/12/10更新 [复制链接]

1#
刚刚接触Qui界面的同学可能会碰到过控件内无法加入循环否则就会卡死的情况,其实这不是精灵本身的原因而是几乎各类编程语言都会出现的情况.解决方法调用系统dll“user32”与“kernel32”下的Api函数
  1. Declare Function PeekMessageA Lib "user32.dll" Alias "PeekMessageA"(ByVal 消息格式 As Long,ByVal 窗口句柄 As Long,ByVal 消息最小过滤值 As Long,ByVal 消息最大过滤值 As Long,ByVal 删除消息 As Long) As Long
  2. Declare Function LocalAlloc Lib "kernel32" Alias "LocalAlloc" (ByVal wOemChar As Long,ByVal wOmChar As Long) As Long
  3. Declare Function LocalFree Lib "kernel32" Alias "LocalAlloc" (ByVal hMem As Long) As Long
  4. Declare Function TranslateMessage Lib "user32.dll" Alias "TranslateMessage"(ByVal 消息结构 As Long) As Long
  5. Declare Function DispatchMessageA Lib "user32.dll" Alias "DispatchMessageA"(ByVal 消息结构 As Long) As Long
  6. Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount"() As Long
  7. Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Long
  8. //上面这一大截我实在懒得写注释只要知道他是系统api就行了具体调用方式如下
  9. Sub 超级延时(毫秒)
  10. Dim s
  11. s = GetTickCount()
  12. Wm=LocalAlloc(0,28)
  13. While (GetTickCount() - s < 毫秒)
  14. If PeekMessageA(Wm, 0, 0, 0, 1) <> 0 Then
  15. TranslateMessage Wm
  16. DispatchMessageA Wm
  17. End If
  18. Wend
  19. LocalFree Wm
  20. End Sub
  21. //使用方法
  22. DimEnv 线程ID
  23. Event Form1.Button1.Click
  24. 线程ID = BeginThread (多线程())
  25. //你要做到事情 - 最好以 多线程启用过程 这样可以释放掉控件过程
  26. EndEvent
  27. Event Form1.Button2.Click
  28. StopThread 线程ID
  29. EndEvent
  30. sub 多线程()
  31. do
  32. //多线程过程
  33. //这里我们就要放弃按键自带的延时命令转而用我们自定义的Api函数
  34. Call 超级延时(参数以毫秒计算) //与Delay 用法一样
  35. Loop
  36. end sub
  37. //按钮改热键
  38. Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long
  39. //先在界面上画一个按钮,一个计时器,然后在按钮过程中写入代码最好与上面的使用方式一起融会贯通
  40. //代码演示
  41. Event Form1.Load
  42. Form1.Timer1.Interval = 100
  43. Form1.Timer1.Enabled = True
  44. End Event
  45. Event Form1.Timer1.Timer
  46. If (GetAsyncKeyState(112)) Then
  47. Call Form1.Button1.Click() //这个不难理解把 - 如果F1 被按下则调用 控件按钮1中的过程
  48. End if
  49. End Event
  50. Event Form1.Button1.Click
  51. msgbox "我被激活了"
  52. End Event
复制代码

点评

深度映像  建议:增加一些对脚本的解释,让大家更容易看明白 。  发表于 2016/12/3 20:42:27

    已有1评分我要评分查看所有评分

    最后编辑梦想起航Q 最后编辑于 2016-12-10 01:40:55
    2#

    顶一个先吧

    3#

    好好看看

    4#

    学习一下

    5#

    学习一下

    6#

    user32”与“kernel32”下的Api函数

    7#

    看看是不是能用到

    8#

    到底是什么幺蛾子

    9#

    看看!!!!

    10#

    按键精灵终极杀手

    11#

    新人路过

    12#

    看看是啥

    13#

    学习下

    14#

    什么鬼

    15#

    DoEvent改的好

    16#


    17#

    DoEvents吧?


    【紫猫编程学院】火热招生中

    教学涉及按键精灵(电脑版与手机版)、网页、游戏、办公、插件等。

    报名咨询QQ: 345911220 微信:zimaoxy

    紫猫学院免费教程

    加入交流QQ群: 7333555


    18#

    顶一个先吧

    接单qq:113220715
    19#

    与uuuuuuuuu

    20#

    11

    发新话题 回复该主题