找回密码
 加入
搜索
查看: 2412|回复: 5

[AU3基础] 在程序的自动化操作过程中,如何避免人为误按鼠标或者键盘?【已解决】

[复制链接]
发表于 2017-8-1 15:58:49 | 显示全部楼层 |阅读模式
本帖最后由 执法K哥 于 2017-8-1 20:37 编辑

小弟最近在做程序的自动化操作,具体实现效果见
Eclipse程序界面中SysTreeView及其节点控件的操作
突然想到一个问题,在程序自动化过程中,如何避免人为误按鼠标或者键盘?换句话就是,程序在执行过程中,人为再点击鼠标或者键盘无效?
发表于 2017-8-1 16:11:17 | 显示全部楼层
回复 1# 执法K哥


    BlockInput
禁用/啟用滑鼠和鍵盤.


BlockInput ( 標誌 )



參 數
標誌 1 = 禁止用戶輸入
0 = 啟用用戶輸入



返 回 值
成功: 返回 1.
失敗: 返回 0. 已啟用或者未使用 #requireAdmin.



備 注
下表顯示 Windows 版本決定本函數的行為; 然而, 由於 Windows API 的特點, 在任何平臺點擊 Ctrl+Alt+Del, 都將重新恢復輸入.


作業系統 "BlockInput" 函數的應用結果
Windows 2000 禁止用戶輸入, 但 AutoIt 可以類比滑鼠和鍵盤輸入.
Windows XP 禁止用戶輸入, 但 AutoIt 可以類比滑鼠和鍵盤輸入. Windows XP SP1 的問題見下面的說明.
Windows Vista 禁止用戶輸入, 但如果使用 #RequireAdmin, 則 AutoIt 可以類比滑鼠和鍵盤.

Windows XP 的 SP1 修補套裝程式含一個錯誤, 當調用本函數使用 Send() 發送 Alt 鍵擊時被禁止. 此錯誤在 Windows XP SP2 中被更新.

BlockInput() 僅影響用戶輸入. 類似 Send() 或 MouseMove() 的輸入仍然能正常工作.

评分

参与人数 1金钱 +10 收起 理由
执法K哥 + 10 谢谢兄台!小弟刚来论坛,承蒙关照!!!

查看全部评分

 楼主| 发表于 2017-8-1 16:55:45 | 显示全部楼层
回复 2# kk_lee69


   多谢兄台!!!
PS:
BlockInput(1)在win7及以上版本中,需要获得管理员权限,所以需要在代码最开始的地方增加获取权限声明。示例代码如下:

#RequireAdmin                                 ;指定当前脚本需要拥有完整的管理员权限才能正确运行.
BlockInput(1)                                    ;屏蔽用户输入
Run("notepad")
WinWaitActive("[CLASS:Notepad]")
Send("{F5}")                                   ;粘贴当前时间和日期
BlockInput(0)                                   ;开启用户输入
 楼主| 发表于 2017-8-1 17:17:12 | 显示全部楼层
回复  执法K哥


    BlockInput
禁用/啟用滑鼠和鍵盤.


BlockInput ( 標誌 )



參 數
標 ...
kk_lee69 发表于 2017-8-1 16:11

顺便问一句,如何把帖子状态改为已解决。。。帖子的编辑选项里好像没找到呢。。。

评分

参与人数 1金钱 +80 收起 理由
kk_lee69 + 80 主動 修改標題 值得稱讚

查看全部评分

发表于 2017-8-1 17:34:28 | 显示全部楼层
回复 4# 执法K哥


    直接編輯  標題  加上 [已解決]
 楼主| 发表于 2017-8-1 20:37:27 | 显示全部楼层
回复 5# kk_lee69


    多谢兄台!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 10:44 , Processed in 0.070571 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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