
一般在jframe中用如下代码实现: in = new JTextField(40); faddWindowListener( new WindowAdapter() { public void windowOpened( WindowEvent e ){ inrequestFocus(); } }); f是你的Jframe对象,in是JTextField对象。
可以!!!
首先要相信,只有你想不到,没有你做不到。VC博大精神。。。
现在就说一下我的思路:
1、首先要远程注入,因为这是跨进程的访问数据,因此,如果不注入的话,是很难从一个进程直接访问另一个进程的空间的,因为每个进程都有自己私有的4G空间。注入的方法很多,不说了。
2、枚举所有的浏览器子窗口。EnumChildWindow
3、监测枚举到的子窗口,获得其注册名字(classname),由此判断是不是一个Edit控件。如果是一个edit控件,则获得它的风格,如果有PASSWORD风格,则说明是一个密码输入框。
4、使用SendMessage( WM_GETTEXT )等函数获得Edit框中的文本。
5、搞定。
另外,至于要判断是不是处于焦点,更简单了。
使用上面第3步得到的Edit句柄,去判断GetFocus()是不是相等。就知道了。
还有,第一步非常重要,否则,余下的都不能实现。
由于项目需要使用了ActivityGroup去控制一群Activity,将Activity加入到AG中都是作为一个新的window加入的,系统可以自动获取到新加入window的焦点(当你滚动时),但是此时,却无法得到之前ActivityGroup那个window的焦点了,因为为了所有的子Activity都共用ActivityGroup的menu(这里是自定义的menu,通过onkeydown控制现实和隐藏),由于失去了ActivityGroup的焦点,此时就无法控制menu的显示了
JPasswordField 中的
requestFocus() 是用来获取焦点的。
比如:
JPasswordField password = new JPasswordField();
passwordrequestFocus();//这里就是获取焦点
1、同时按下键盘上的win+R快捷键打开电脑的运行窗口,在打开的运行窗口中,输入regedit并单击回车,打开win7旗舰版电脑的注册表编辑器窗口;
2、在打开的注册表编辑器窗口中,依次点击展开HKEY_CURRENT_USERControl PanelDesktop;
3、然后找到里面的ForegroundLockTimeout的选项,双击打开该项,把这个数值改成10进制的任何6位数以上 (系统默认200000毫秒/十六进制30d40)就可以了。
4微软Windows 7为桌面窗口设置增加了“智能排列”的新功能。在Windows 7的桌面窗口上,将一些应用程序窗口移动到屏幕顶端时,应用程序窗口会自动最大化;如果将应用程序窗口移动到桌面左右两侧时,应用程序窗口占据左右两边的屏幕。
5 一些用户并不太习惯Windows7“窗口智能排列”这样的默认设置,我们可以通过对注册表的 *** 作取消这个窗口“智能排列”功能。
6运行注册表,定位到HKEY_CURRENT_USER\Control Panel\Desktop,在右侧窗口中找到并双击“Window Arrangement Active”然后在d出的对话框中,将系统默认的值“1”修改为“0”。
以上就是关于如何让文本框JTextField获取焦点全部的内容,包括:如何让文本框JTextField获取焦点、有没有可能用win32程序获取浏览器中网页的文本框控件的内容和焦点状态、window之间 如何切换 焦点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)