|
Input.dispatchKeyEvent 参数中 text = "1234"可以成功,用"12345"不成功,提示text参数错误,为什么?
假如我要输入一长串中文字符"中国人民站起来了123456abcdefg",怎么设置这些参数?
求解Input.dispatchKeyEvent的正确用法!
- //Chrome远程调试接口
- import win.ui;
- /*DSG{{*/
- var winform = win.form(text="调用chrome远程调试接口";right=789;bottom=508;topmost=1)
- winform.add(
- btnConnect={cls="button";text="3.连接chrome";left=334;top=456;right=438;bottom=487;db=1;dr=1;z=4};
- btnSend={cls="button";text="4.调用chrome打开网页";left=444;top=456;right=583;bottom=487;db=1;dr=1;z=3};
- btnStartChrome={cls="button";text="1.启动chrome调试进程";left=39;top=456;right=178;bottom=487;db=1;dr=1;z=5};
- button={cls="button";text="2.获取可调试网页列表";left=187;top=456;right=326;bottom=487;db=1;dr=1;z=7};
- button2={cls="button";text="5.模拟键盘输入";left=619;top=419;right=758;bottom=487;db=1;dr=1;z=9};
- editPort={cls="edit";left=30;top=361;right=122;bottom=391;edge=1;multiline=1;z=6};
- txtData={cls="edit";text="http://bbs.aardio.com/forum.php?mod=viewthread&tid=21977";left=30;top=398;right=583;bottom=437;db=1;dl=1;dr=1;edge=1;multiline=1;z=2};
- txtMessage={cls="richedit";left=29;top=22;right=755;bottom=352;db=1;dl=1;dr=1;dt=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=1};
- txtWsUrl={cls="edit";left=124;top=361;right=584;bottom=392;edge=1;multiline=1;z=8}
- )
- /*}}*/
- import web.socket.chrome;
- var ws = web.socket.chrome();
- //监听chrome事件
- ws.on("Inspector.detached",function(param){
- winform.txtMessage.print("chrome已主动断开连接,原因:",param);
- })
- ws.on("Network.requestWillBeSent",function(param){
- winform.txtMessage.print("准备发送请求:",param );
- })
- //打开连接触发的事件
- ws.on("open",function(){
- winform.txtMessage.print("已打开连接")
- })
- ws.on("close",function(){
- winform.txtMessage.print("已关闭连接")
- });
- ws.on("error",function(err){
- winform.txtMessage.print("出错了",err);
- });
- //调用chrome打开一个网页
- winform.btnSend.oncommand = function(id,event){
- ws.Network.enable(
- maxTotalBufferSize = 10240;
- ).end = function(result,err){
- winform.txtMessage.print("调用Network.enable结果:",result)
- }
-
- ws.Page.navigate(
- url = winform.txtData.text;
- ).end = function(result,err){
- winform.txtMessage.print("调用返回参数",result)
- }
- }
- //连接chrome
- winform.btnConnect.oncommand = function(id,event){
- ws.connect(winform.txtWsUrl.text);
- }
- winform.btnStartChrome.oncommand = function(id,event){
- //获取chrome安装路径
- import win.reg;
- var reg = win.reg("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe")
- var chromePath = reg.queryValue("");
-
- //获取可用端口
- var port = wsock.getFreePort();
-
- //启动chrome;
- import process;
- if( process.find("chrome.exe")){
- //winform.msgbox("请先先退出chrome.exe");
- //return;
- }
- process.execute(chromePath,"--remote-debugging-port=" +port ++` ` );
-
- winform.editPort.text = port;
- }
- winform.button.oncommand = function(id,event){
- var first;
- for id,title,wsUrl,devtoolsUrl in ws.eachDebuggingPage(winform.editPort.text) {
- winform.txtMessage.print(title);
- winform.txtMessage.print(devtoolsUrl);
- winform.txtMessage.print(wsUrl);
- winform.txtMessage.print();
-
- if(!first) first = wsUrl;
- }
-
- winform.txtWsUrl.text = first : "";
- }
- //模拟键盘输入 -- text = "12345";//"1234"可以,用"12345"不可以;
- winform.button2.oncommand = function(id,event){
- ws.Input.dispatchKeyEvent(
- type = "char";//类型,允许值:keyDown, keyUp, rawKeyDown, char
- modifiers = 0;//功能键
- timestamp = time.tick();//时间戳
- text = "12345";//"1234"可以,用"12345"不可以;//通过处理带有键盘布局的虚拟密钥代码生成的文本字符串文本,不要用于KEYUP和rawkeydown事件,默认""
- unmodifiedtext = "";//tostring("111");//"";//字符串文本,对快捷键处理有用,默认""
- keyidentifier = "";//字符串唯一密钥标识符,默认""
- code = "";//物理键,如"KeyA",默认""
- key = "";//键盘布局,如"AltGr",默认""
- windowsvirtualkeycode = 0;//Windows虚拟键码,默认值
- nativevirtualkeycode = 0;//本地虚拟键码,默认值
- autoRepeat = false;//事件是否是自动重复生成(默认:假)
- iskeypad = false;//事件是否是从键盘生成(默认:假)
- issystemkey = false;//事件是否是一个系统的关键事件(默认:假)
- ).end = function(result,err){
- winform.txtMessage.print("模拟键盘输入,收到应答",result,err)
- }
- }
- winform.show();
- win.loopMessage();
复制代码 |
|