找回密码
 加入
搜索
查看: 7864|回复: 13

[系统综合] 请问如何防止对当前窗口有SEND动作时,临时禁止其他操作

 火.. [复制链接]
发表于 2012-12-13 03:49:05 | 显示全部楼层 |阅读模式
就是对指定账户登录窗口输入带有用户信息时,避免切到比如记事本,结果把信息都暴漏了。

比较菜,望指点。。。
发表于 2012-12-13 07:35:04 | 显示全部楼层
可以考虑暂时禁用键盘和鼠标(BlockInput) ,并判断当前激活窗口是否为所要发送的窗口(WinActive)

注意及时解除禁用,否则只能按CTRL+ALT+DEL组合键强行关掉程序才能用键鼠了.
发表于 2012-12-13 08:29:39 | 显示全部楼层

标题

回复 1# haixian000

除非别无选择,不建议使用模拟击键的方法,而是采用更可靠的控件的办法,如果一定要使用send,建议在程序前面加上sendkeepactive函数
发表于 2012-12-13 14:26:46 | 显示全部楼层
BlockInput(1)
需要输入的代码
BlockInput(0)
发表于 2012-12-14 09:38:59 | 显示全部楼层
2,4楼的两位会不会理解有偏差呢,封阻只能避免人为地激活记事本,不能阻止目标窗口失去焦点
发表于 2012-12-17 22:02:52 | 显示全部楼层
回复 5# annybaby
觉得2,4楼的方法可行,本来send的时候都是要WinActivate目标窗口的,如果鼠键被锁定的话,目标窗口一般是不会失去焦点,除非后台有程序会跳出窗口。
发表于 2012-12-17 22:53:57 | 显示全部楼层
回复 8# xms77

我上面已经说了,如果一定要使用send的话,就在程序前面加上
sendkeepactive

   
并且,很明显,看楼主的描述,不太可能是自己主动将焦点切换到记事本~~应该是其它程序~~
发表于 2012-12-18 00:23:23 | 显示全部楼层
ControlSend可以针对指定的控件发送,这个比较稳妥。

不过控件的方式有些情况下可能会无效,只能用send发送,在发送的时候加一条判断指令,确保输入到当前的活动窗口
发表于 2012-12-18 00:23:53 | 显示全部楼层
有一些特殊情况也可以直接写内存操作。
发表于 2012-12-18 00:25:39 | 显示全部楼层
如果能获取到要输入对象的地址,我一般都是先用send(或者ControlSend)发送,发送后,我再读内存比对结果,如果发现结果有误,再用写内存的方式。
发表于 2012-12-18 00:27:15 | 显示全部楼层
在隔壁下软件没钱,只好到这边来打工了。
发表于 2012-12-18 00:28:12 | 显示全部楼层
我在10楼的回帖没说清楚,因为我的原则是尽量不用写内存的方式,只有出现错误的时候,才用。
发表于 2012-12-18 00:34:34 | 显示全部楼层
回复 12# waynew

连续自己顶N个帖,每个帖子一句话,有可能会被管理人员当作是恶意灌水哦,到时刷的分还够扣,这样也不利于其他坛友学习讨论,建议将还些还没有回复删除了,将内容编辑到一个帖子~
特别是你十一楼的~~

评分

参与人数 1威望 +1 收起 理由
afan + 1

查看全部评分

发表于 2012-12-19 14:44:10 | 显示全部楼层
最好是楼主举个例子说明一下,或者干脆把你想做的事情说出来,这样针对性地解决问题可能效率会高一点!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-20 02:37 , Processed in 0.091028 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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