【转】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 ...
随机推荐
- 基于DDD的.NET开发框架ABP实例,多租户 (Sass)应用程序,采用.NET MVC, Angularjs, EntityFramework-介绍
介绍 基于ABPZERO的多租户 (Sass)应用程序,采用ASP.NET MVC, Angularjs-介绍 ASP.NET Boilerplate作为应用程序框架. ASP.NET MVC和ASP ...
- selenium框架与chrome浏览器的不兼容问题
在一次偶然的情况下,在chrome上用selenium框架去抓取某个id为XX的页面元素,使用WebDriver的findElement().click()方法进行点击,原来在firefox浏览器运行 ...
- 我眼中的JAVA的那些数据结构应用
能沉淀下来的东西,往往都很基础,整理了下JAVA中遇到的数据结构 目录大纲: 到目前接触到的 有几个说明: 可扩容数组 ArrayList 扩容数组的实现, 满了后扩容,扩容在1.5倍,通过copy过 ...
- 关于echarts的一些基本使用demo
最近发现一个很好用的一个前端控件echarts,效果非常不错,兼容ie8+以上等主流浏览器.可以使用它制作报表,地图示意图等,可用其实现一系列强大的功能. 其基于html5 Canvas,是一个纯Ja ...
- HTTP各状态消息说明
200:请求已成功,请求所希望的响应头或数据体将随此响应返回. 302:请求的资源临时从不同的 URI 响应请求.由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求.只有在 Cache- ...
- Linux实战教学笔记21:Rsync数据同步工具
第二十一节 Rsync数据同步工具 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转载,转载 ...
- 《学习记录》ng2-bootstrap中的component使用教程
前序: 现在angular2已经除了集成的angular-cli,建议大家可以基于这个来快速开发ng2的项目,不用自己再搭建环境: 相关内容请前往:https://angular.cn/docs/ts ...
- 2017年的golang、python、php、c++、c、java、Nodejs性能对比(golang python php c++ java Nodejs Performance)
2017年的golang.python.php.c++.c.java.Nodejs性能对比 本人在PHP/C++/Go/Py时,突发奇想,想把最近主流的编程语言性能作个简单的比较, 至于怎么比,还是不 ...
- layer弹出层框架alert与msg详解
ayer至今仍作为layui的代表作,她的受众广泛并非偶然,而是这五年多的坚持,不断完善和维护.不断建设和提升社区服务,使得猿们纷纷自发传播,乃至于成为今天的Layui最强劲的源动力.目前,layer ...
- Android: DrawerLayout 侧滑菜单栏
DrawerLayout是SupportLibrary包中实现的侧滑菜单效果的控件. 分为主内容区域和侧边菜单区域 drawerLayout本身就支持:侧边菜单根据手势展开与隐藏, 开发者只需要实现: ...