【转】air调用windows自带的虚拟键盘
原文:http://bbs.9ria.com/blog-73243-19560.html
最近在做一个东西,需要用到虚拟键盘。刚开始准备用as3开发一套,结果突然想起来windows有个自带的虚拟键盘(osk.exe),而且air是支持调用本地程序的,所以就写了个程序来调用。刚开始直接调用C:/Windows/System32/osk.exe 发现是行不通的,调用的时候会报错。而后想了下,或许osk.exe这个东西更应该是属于bat类型文件,而NativeProcess是不能直接调用bat文件的,要用的话需要先调用cmd,然后给cmd参数来调用osk。试了下,果然行了。
先上代码
package { importflash.desktop.NativeApplication; importflash.desktop.NativeProcess; importflash.desktop.NativeProcessStartupInfo; import flash.display.Sprite; importflash.display.StageDisplayState; import flash.events.Event; import flash.events.MouseEvent; import flash.filesystem.File; import flash.text.TextField; importflash.text.TextFieldType; public class VirtualKeyBoard extendsSprite { private varfile:File; private varnativeProcessStartupInfo:NativeProcessStartupInfo; private varprocess:NativeProcess; private vartextField:TextField; public functionVirtualKeyBoard() { this.stage.displayState =StageDisplayState.FULL_SCREEN_INTERACTIVE; this.stage.nativeWindow.alwaysInFront = true; process =new NativeProcess(); file = newFile(); NativeApplication.nativeApplication.autoExit=true; file=file.resolvePath("C:/Windows/System32/cmd.exe"); varprocessArg:Vector. = new Vector.(); processArg[0] = "/c";// 加上/c,表示是cmd的参数 processArg[1] ="C:/Windows/System32/osk.exe";//bat的路径,建议用绝对路径,如果是相对的,可以用File转一下 nativeProcessStartupInfo = newNativeProcessStartupInfo(); nativeProcessStartupInfo.executable = file; nativeProcessStartupInfo.arguments = processArg; textField= new TextField(); textField.width = 300; textField.y = 30; textField.x = 30; addChild(textField); textField.border = true; textField.type = TextFieldType.INPUT; textField.addEventListener(MouseEvent.CLICK,onTextFieldActivateHandler); } private functiononTextFieldActivateHandler(evt:Event):void { if(process.running)return; process.start(nativeProcessStartupInfo); } } }
注意下中间
processArg[0] = "/c";// 加上/c,表示是cmd的参数
processArg[1] ="C:/Windows/System32/osk.exe";//bat的路径,建议用绝对路径,如果是相对的,可以用File转一下
这两行代码就行,是给调用的程序添加参数。
另外,可以把osk.exe拷贝到任何地方使用。
【转】air调用windows自带的虚拟键盘的更多相关文章
- C#调用Windows(8/10)自带的虚拟键盘
以下是调用代码: private const Int32 WM_SYSCOMMAND = 274; private const UInt32 SC_CLOSE = 61536; [DllImport( ...
- delphi调用windows自带语音功能
windows自带语音接口 SAPI.SpVoice, 接口说明如下 https://docs.microsoft.com/en-us/previous-versions/windows/deskto ...
- 工作总结:MFC调用Windows自带新建、保存对话框代码
保存: void CExample17Dlg::OnBnClickedSaveButton() { // TODO: Add your control notification handler cod ...
- C# 调用windows api 操作鼠标、键盘、窗体合集...更新中
鼠标操作window窗体合集...更新中 1.根据句柄查找窗体 引自http://www.2cto.com/kf/201410/343342.html 使用SPY++工具获取窗体 首先打开spy+ ...
- C#调用windows API的一些方法
使用C#调用windows API(从其它地方总结来的,以备查询) C#调用windows API也可以叫做C#如何直接调用非托管代码,通常有2种方法: 1. 直接调用从 DLL 导出的函数. 2. ...
- [转]Perfmon - Windows 自带系统监测工具
以下内容转自:http://blog.csdn.net/oscar999/article/details/7918385 ---------------------------分割线--------- ...
- 善于 调用Windows API
前一段时间看见别人做的一个自动填写信息并且点击登录的程序,觉得很有意思. 其实就是在程序中调用Windows的API,那么如何调用,下面就做个简单的介绍. 写的简单粗暴, 不喜轻喷. 0.首先引入名称 ...
- Unity调用Windows弹框、提示框(确认与否,中文)
Unity调用Windows弹提示框 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...
- Perfmon - Windows 自带系统监测工具(转)
本文转自:http://blog.csdn.net/oscar999/article/details/7918385 一. 简述 可以用于监视CPU使用率.内存使用率.硬盘读写速度.网络速度等. Pe ...
随机推荐
- Java String类和Object类
String类: 方法: 1.charAt(int index):取index下标的char类型值 2.endsWith(String prefix) /startsWith(String prefi ...
- 8086cpu
1. 8086CPU和8088CPU内部结构基本相同,不同之处在于8088有8条外部数据总线,因此为准16位.8086有16条外部数据总线.两个CPU的软件完全兼容,程序的编制也完全相同. 2. ...
- C语言——选择排序
---恢复内容开始--- 算法思想: n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果: ①初始状态:无序区为R[1..n],有序区为空. ②第1趟排序 在无序区R[1..n]中选出 ...
- 【java基础之jdk源码】Object
最新在整体回归下java基础薄弱环节,以下为自己整理笔记,若有理解错误,请批评指正,谢谢. java.lang.Object为java所有类的基类,所以一般的类都可用重写或直接使用Object下方法, ...
- c#之循环效率
很多人在保存数据时候对于使用数组.集合等?然后遍历数据的时候是for.froeach? 下面我就写一个小例子进行测试看看,话不多说,直接用数据说话. 1.构建数据分别是数组.集合构建,数据类型分别是值 ...
- Spark集群搭建_Standalone
2017年3月1日, 星期三 Spark集群搭建_Standalone Driver: node1 Worker: node2 Worker: node3 1.下载安装 下载地址 ...
- cassandra 数据到Java对象的映射绑定
类似Hibernate和MyBatis的关系映射,自动帮你将查询数据或是修改的参数进行数据映射和绑定. 支持查询后返回数据ResultSet到Java对象的映射,支持修改.删除.查询之前参数的绑定. ...
- C#语言基础——语句
1·语句是指程序命令,都是按照顺序执行的.语句在程序中的执行顺序称为"控制流"或"执行流".根据程序对运行时所收到的输入的响应,在程序每次执行时控制流可能有所不 ...
- Lambda表达式和Java集合框架
本文github地址 前言 我们先从最熟悉的Java集合框架(Java Collections Framework, JCF)开始说起. 为引入Lambda表达式,Java8新增了java.util. ...
- C#计算表达式(仿计算器功能)
一.用MSScriptControl在C#中执行JavaScript代码javascript中有个eval方法用过的人都知道他的方便和强大之处.在C#中,我们也可以通过Com组件来执行一段javasc ...