请问如何防止对当前窗口有SEND动作时,临时禁止其他操作
就是对指定账户登录窗口输入带有用户信息时,避免切到比如记事本,结果把信息都暴漏了。{:face (207):}比较菜,望指点。。。 可以考虑暂时禁用键盘和鼠标(BlockInput) ,并判断当前激活窗口是否为所要发送的窗口(WinActive)
注意及时解除禁用,否则只能按CTRL+ALT+DEL组合键强行关掉程序才能用键鼠了.
标题
回复 1# haixian000除非别无选择,不建议使用模拟击键的方法,而是采用更可靠的控件的办法,如果一定要使用send,建议在程序前面加上sendkeepactive函数 BlockInput(1)
需要输入的代码
BlockInput(0) 2,4楼的两位会不会理解有偏差呢,封阻只能避免人为地激活记事本,不能阻止目标窗口失去焦点 回复 5# annybaby
觉得2,4楼的方法可行,本来send的时候都是要WinActivate目标窗口的,如果鼠键被锁定的话,目标窗口一般是不会失去焦点,除非后台有程序会跳出窗口。 回复 8# xms77
我上面已经说了,如果一定要使用send的话,就在程序前面加上
sendkeepactive
并且,很明显,看楼主的描述,不太可能是自己主动将焦点切换到记事本~~应该是其它程序~~ ControlSend可以针对指定的控件发送,这个比较稳妥。
不过控件的方式有些情况下可能会无效,只能用send发送,在发送的时候加一条判断指令,确保输入到当前的活动窗口 有一些特殊情况也可以直接写内存操作。 如果能获取到要输入对象的地址,我一般都是先用send(或者ControlSend)发送,发送后,我再读内存比对结果,如果发现结果有误,再用写内存的方式。 在隔壁下软件没钱,只好到这边来打工了。 我在10楼的回帖没说清楚,因为我的原则是尽量不用写内存的方式,只有出现错误的时候,才用。 回复 12# waynew
连续自己顶N个帖,每个帖子一句话,有可能会被管理人员当作是恶意灌水哦,到时刷的分还够扣,这样也不利于其他坛友学习讨论,建议将还些还没有回复删除了,将内容编辑到一个帖子~
特别是你十一楼的~~ 最好是楼主举个例子说明一下,或者干脆把你想做的事情说出来,这样针对性地解决问题可能效率会高一点!
页:
[1]