搜档网
当前位置:搜档网 › 总结Selenium WebDriver中一些鼠标和键盘事件的使用

总结Selenium WebDriver中一些鼠标和键盘事件的使用

总结Selenium WebDriver中一些鼠标和键盘事件的使用
总结Selenium WebDriver中一些鼠标和键盘事件的使用

本文将总结Selenium WebDriver 中的一些鼠标和键盘事件的使用,以及组合键的使用,并且将介绍WebDriver 中没有实现的键盘事件(Keys 枚举中没有列举的按键)的扩展。举例说明扩展Alt+PrtSc 组合键来截取当前活动窗口并将剪切板图像保存到文件。

在使用Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为。比如使用鼠标单击、双击、右击、拖拽等动作;或者键盘输入、快捷键使用、组合键使用等模拟键盘的操作。在WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是Actions 类,在使用该类的过程中会配合使用到Keys 枚举以及Mouse、Keyboard、CompositeAction 等类。

其次,在实际测试过程中,可能会遇到某些按键没办法使用Actions、Keys 等类来实现的情况。比如通过使用Alt+PrtSc 组合键来实现截取屏幕当前活动窗口的图像,在Keys 枚举中,因为没有枚举出PrtSc 键,所以没办法通过Action 的KeyDown(Keys) 来模拟按下这个动作。

再次是在自动化测试中,可能会遇到一些附件、文件上传的场景,或者是多文件上传,这些在Selenium2.0 之后,可以直接使用WebElement 类的sendKeys() 方法来实现。

下面就分别介绍这些情况的具体使用。

鼠标点击操作

鼠标点击事件有以下几种类型:

清单1. 鼠标左键点击

Actions action = new Actions(driver);action.click();// 鼠标左键在当前停留的位置做单击操作

action.click(driver.findElement(https://www.sodocs.net/doc/1e17816241.html,(element)))// 鼠标左键点击指定的元素

清单2. 鼠标右键点击

Actions action = new Actions(driver);

action.contextClick();// 鼠标右键在当前停留的位置做单击操作

action.contextClick(driver.findElement(https://www.sodocs.net/doc/1e17816241.html,(element)))// 鼠标右键点击指定的元素

清单3. 鼠标双击操作

Actions action = new Actions(driver);

action.doubleClick();// 鼠标在当前停留的位置做双击操作

action.doubleClick(driver.findElement(https://www.sodocs.net/doc/1e17816241.html,(element)))// 鼠标双击指定的元素

清单4. 鼠标拖拽动作

Actions action = new Actions(driver);

// 鼠标拖拽动作,将 source 元素拖放到 target 元素的位置。

action.dragAndDrop(source,target);

// 鼠标拖拽动作,将 source 元素拖放到 (xOffset, yOffset) 位置,其中 xOffset 为横坐标,yOffset 为纵坐标。

action.dragAndDrop(source,xOffset,yOffset);

在这个拖拽的过程中,已经使用到了鼠标的组合动作,首先是鼠标点击并按住

(click-and-hold) source 元素,然后执行鼠标移动动作(mouse move),移动到target 元素位置或者是(xOffset, yOffset) 位置,再执行鼠标的释放动作(mouse release)。所以上面的方法也可以拆分成以下的几个执行动作来完成:

action.clickAndHold(source).moveToElement(target).perform();

action.release();

清单5. 鼠标悬停操作

Actions action = new Actions(driver);

action.clickAndHold();// 鼠标悬停在当前位置,既点击并且不释放

action.clickAndHold(onElement);// 鼠标悬停在 onElement 元素的位置

action.clickAndHold(onElement) 这个方法实际上是执行了两个动作,首先是鼠标移动到元素onElement,然后再clickAndHold, 所以这个方法也可以写成

action.moveToElement(onElement).clickAndHold()。

清单6. 鼠标移动操作

Actions action = new Actions(driver);

action.moveToElement(toElement);// 将鼠标移到 toElement 元素中点

// 将鼠标移到元素 toElement 的 (xOffset, yOffset) 位置,

//这里的 (xOffset, yOffset) 是以元素 toElement 的左上角为 (0,0) 开始的 (x, y) 坐标轴。

action.moveToElement(toElement,xOffset,yOffset)

// 以鼠标当前位置或者 (0,0) 为中心开始移动到 (xOffset, yOffset) 坐标轴

action.moveByOffset(xOffset,yOffset);

action.moveByOffset(xOffset,yOffset) 这里需要注意,如果xOffset 为负数,表示横坐标向左移动,yOffset 为负数表示纵坐标向上移动。而且如果这两个值大于当前屏幕的大小,鼠标只能移到屏幕最边界的位置同时抛出MoveTargetOutOfBoundsExecption 的异常。

鼠标移动操作在测试环境中比较常用到的场景是需要获取某元素的flyover/tips,实际应用中很多flyover 只有当鼠标移动到这个元素之后才出现,所以这个时候通过执行moveToElement(toElement) 操作,就能达到预期的效果。但是根据我个人的经验,这个方法对于某些特定产品的图标,图像之类的flyover/tips 也不起作用,虽然在手动操作的时候移动鼠标到这些图标上面可以出现flyover, 但是当使用WebDriver 来模拟这一移动操作时,虽然方法成功执行了,但是flyover 却出不来。所以在实际应用中,还需要对具体的产品页面做相应的处理。

清单7. 鼠标释放操

Actions action = new Actions(driver);

action.release();// 释放鼠标

键盘模拟操作

对于键盘的模拟操作,Actions 类中有提供keyUp(theKey)、keyDown(theKey)、sendKeys(keysToSend) 等方法来实现。键盘的操作有普通键盘和修饰键盘(Modifier Keys, 下面的章节将讲到修饰键的概念)两种:

1. 对于普通键盘,使用sendKeys(keysToSend) 就可以实现,比如按键TAB、Backspace 等。

清单8. 普通键盘模拟sendKeys(keysToSend)

Actions action = new Actions(driver);

action.sendKeys(Keys.TAB);// 模拟按下并释放 TAB 键

action.sendKeys(Keys.SPACE);// 模拟按下并释放空格键

/***

针对某个元素发出某个键盘的按键操作,或者是输入操作,

比如在 input 框中输入某个字符也可以使用这个方法。这个方法也可以拆分成:

action.click(element).sendKeys(keysToSend)。

*/

action.sendKeys(element,keysToSend);

注意除了Actions 类有sendKeys(keysToSend)方法外,WebElement 类也有一个sendKeys(keysToSend)方法,这两个方法对于一般的输入操作基本上相同,不同点在于以下几点:

?Actions 中的sendKeys(keysToSend) 对于修饰键(Modifier Keys) 的调用并不会释放,也就是说当调用actions.sendKeys(Keys.ALT); actions.sendKeys(Keys.CONTROL);

action.sendKeys(Keys.SHIFT); 的时候,相当于调用actions.keyDown(keysToSend),而如果在现实的应用中想要模拟按下并且释放这些修饰键,应该再调用

action.sendKeys(keys.NULL) 来完成这个动作。

?其次就是当Actions 的sendKeys(keysToSend) 执行完之后,焦点就不在当前元素了。所以我们可以使用sendKeys(Keys.TAB) 来切换元素的焦点,从而达到选择元素的作用,这个最常用到的场景就是在用户名和密码的输入过程中。

?第三点,在WebDriver 中,我们可以使用WebElement 类的sendKeys(keysToSend) 来上传附件,比如element.sendKeys(“C:\\test\\uploadfile\\t est.jpg”); 这个操作将test.jpg 上传到服务器,但是使用:

Actions action = New Actions(driver);

action.sendKeys(element,“C:\\test\\upload\\test.jpg”);

action.click(element).sendKeys(“C:\\test\\upload\\test.jpg”);

这种方式是上传不成功的,虽然WebDriver 在执行这条语句的时候不会出错,但是实际上并没有将文件上传。所以要上传文件,还是应该使用前面一种方式。

2.对于修饰键(Modifier keys),一般都是跟普通键组合使用的。比如Ctrl+a、Alt+F4、

Shift+Ctrl+F 等等。

?这里先解释一下修饰键的概念,修饰键是键盘上的一个或者一组特别的键,当它与一般按键同时使用的时候,用来临时改变一般键盘的普通行为。对于单独按下修饰键本身一般不会触发任何键盘事件。在个人计算机上的键盘上,有以下几个修饰键:Shift、Ctrl、Alt(Option)、AltGr、Windows logo、Command、FN(Function)。但是在WebDriver 中,一般的修饰键指前面三个。你可以点击下面的Wiki 链接去了解更多有关修饰键的信息,Modifier key。

回到上面的话题,在WebDriver 中对于修饰键的使用需要用到KeyDown(theKey)、keyUp(theKey) 方法来操作。

清单9. 修饰键方法KeyDown(theKey)、keyUp(theKey)

Actions action = new Actions(driver);

action.keyDown(Keys.CONTROL);// 按下 Ctrl 键

action.keyDown(Keys.SHIFT);// 按下 Shift 键

action.keyDown(Key.ALT);// 按下 Alt 键

action.keyUp(Keys.CONTROL);// 释放 Ctrl 键

action.keyUp(Keys.SHIFT);// 释放 Shift 键

action.keyUp(Keys.ALT);// 释放 Alt 键

所以要通过Alt+F4 来关闭当前的活动窗口,可以通过下面语句来实现:

action.keyDown(Keys.ALT).keyDown(Keys.F4).keyUp(Keys.ALT).perform();

而如果是对于像键盘上面的字母键a,b,c,d... 等的组合使用,可以通过以下语句实

现:action.keyDown(Keys.CONTROL).sednKeys(“a”).perform();

在WebDriver API 中,KeyDown(Keys theKey)、KeyUp(Keys theKey) 方法的参数只能是修饰键:Keys.SHIFT、Keys.ALT、Keys.CONTROL, 否者将抛出IllegalArgumentException 异常。其次对于action.keyDown(theKey) 方法的调用,如果没有显示的调用

action.keyUp(theKey) 或者action.sendKeys(Keys.NULL) 来释放的话,这个按键将一直保持按住状态。

使用Robot 类来操作Keys 没有枚举出来的按键操作

1.在WebDriver 中,Keys 枚举出了键盘上大多数的非字母类按键,从F1 到F10,

NUMPAD0 到NUMPAD9、ALT\TAB\CTRL\SHIFT 等等,你可以通过以下链接查看Keys 枚举出来的所有按键,Enum Keys。但是并没有列出键盘上的所有按键,比如字母键a、

b、c、d … z,一些符号键比如:… {}\[] ?、… \ ?、…。?、… ? ?、…:?、… + ?、… - ?、… = ?、、…“”?,还

有一些不常用到的功能键如PrtSc、ScrLk/NmLk。对于字母键和符号键,前面我们已经提到可以直接使用sendKeys(“a”),sendKeys(“/”) 的方式来触发这些键盘事件。而对于一些功能组合键,如Fn + NmLk 来关闭或者打开数字键,或者Alt+PrtSC 来抓取当前屏幕的活动窗口并保存到图片,通过WebDriver 的Keys 是没办法操作的。这个时候我们就需要用到Java 的Robot 类来实现对这类组合键的操作了。

2.下面就以对Alt+PrtSc 为例介绍一下Robot 对键盘的操作。如代码清单10。

清单10. 通过Robot 发出组合键动作

/**

*

* @Description: 这个方法用来模拟发送组合键 Alt + PrtSc, 当组合键盘事件执行之后,屏幕上的活动窗口

* 就被截取并且存储在剪切板了。接下来就是通过读取剪切板数据转换成 Image 图像对象并保存到本地。

* @param filename :要保存的图像的名称

*/

public static void sendComposeKeys(String fileName) throws Exception {

// 构建 Robot 对象,用来操作键盘

Robot robot = new Robot();

// 模拟按下键盘动作,这里通过使用 KeyEvent 类来获取对应键盘(ALT)的虚拟键码

robot.keyPress(java.awt.event.KeyEvent.VK_ALT);

// 按下 PrtSC 键

robot.keyPress(java.awt.event.KeyEvent.VK_PRINTSCREEN);

// 释放键盘动作,当这个动作完成之后,模拟组合键 Alt + PrtSC 的过程就已经完成,

//此时屏幕活动窗口就一被截取并存入到剪切板

robot.keyRelease(java.awt.event.KeyEvent.VK_ALT);

// 获取系统剪切板实例

Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard();

// 通过 getContents() 方法就可以将剪切板内容获取并存入

Transferable 对象中

Transferable data = sysc.getContents(null);

if (data != null) {

/***

判断从剪切板获取的对象内容是否为 Java Image 类,如果是将直接转化为 Image 对象。

到此为止,我们就从发出组合键到抓取活动窗口,再读取剪切板并存入 Image 对象的过程

就完成了,接下来要做的就是需要将 Image 对象保存到本地。

*/

if

(data.isDataFlavorSupported(DataFlavor.imageFlavor)) {

Image image = (Image) data

.getTransferData(DataFlavor.imageFlavor);

writeImageToFile(image, fileName);

}

}

}

Robot 类对键盘的处理是通过keyPress(int keycode)、keyRelease(int keycode) 方法来实现的,其中他们需要的参数是键盘按键对应的虚拟键码,虚拟键码的值可以通过KeyEvent 类来获取。在Java API 中对于虚拟键码的解释如下:虚拟键码用于报告按下了键盘上的哪个键,而不是一次或多次键击组合生成的字符(如"A" 是由shift +"a" 生成的)。例如,按下Shift 键会生成keyCode 为VK_SHIFT 的KEY_PRESSED 事件,而按下'a' 键将生成keyCode 为VK_A 的KEY_PRESSED 事件。释放'a' 键后,会激发keyCode 为VK_A 的KEY_RELEASED 事件。另外,还会生成一个keyChar 值为'A' 的

KEY_TYPED 事件。按下和释放键盘上的键会导致(依次)生成以下键事件:

KEY_PRESSED

KEY_TYPED(只在可生成有效Unicode 字符时产生。)

KEY_RELEASED

所以当测试中需要用到按下键盘Alt+PrtSc 键的时候,只需要执行代码清单10 中两个keyPress() 和一个keyRelease() 方法即可。

3.当这两个按键执行结束之后,屏幕上面的活动窗口已经保存到剪切板中。如果需要将其保存本地图片,只需要从剪切板读取并通过JPEGImageEncoder 类或者ImageIO 类将其写入本地即可。

清单11. 使用JPEGImageEncoder 将Image 对象保存到本地

/**

*

* @Description: 这个方法用来将 Image 对象保存到本地,主要是通过 JPEGImageEncoder 类来实现图像的

* 保存

* @param image :要保存的 Image 对象

* @param filename :保存图片的文件名称

*/

public static void writeImageToFile(Image image, String fileName) { try {

// 获取 Image 对象的宽度和高度,这里的参数为 null 表示不需要通知任何观察者

int width = image.getWidth(null);

int height = image.getHeight(null);

BufferedImage bi = new BufferedImage(width, height,

BufferedImage.TYPE_INT_RGB);

// 通过 BufferedImage 绘制图像并保存在其对象中

bi.getGraphics().drawImage(image, 0, 0, null);

// 构建图像名称及保存路径

String name = Const.DIRECTORY + fileName + Const.FORMAT;

File dir = new File(Const.DIRECTORY);

if (!dir.exists()) {

dir.mkdir();

}

FileOutputStream out = new FileOutputStream(name);

@SuppressWarnings("restriction")

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

encoder.encode(bi);

out.flush();

out.close();

} catch (Exception e) {

e.printStackTrace();

}

}

代码清单11 是通过JPEGImageEncoder 类将Image 对象写到本地文件流,注意Image 对象是在代码清单10 中的如下语句获取到的:

Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard();

Transferable data = sysc.getContents(null);

if (data != null) {

if (data.isDataFlavorSupported(DataFlavor.imageFlavor)) {

Image image = (Image)

data.getTransferData(DataFlavor.imageFlavor);

writeImageToFile(image, fileName);

}

}

清单12. 使用ImageIO 将Image 对象保存到本地

/**

*

* @Description: 通过使用 ImageIO 类来保存 Image 对象为本地图片

* @param image :需要保存的 Image 对象

* @param filename :文件名

*/

public static void saveImage(Image image, String fileName) throws Exception { // 获取 Image 对象的高度和宽度

int width = image.getWidth(null);

int height = image.getHeight(null);

BufferedImage bi = new BufferedImage(width, height,

BufferedImage.TYPE_INT_RGB);

Graphics g = bi.getGraphics();

//通过 BufferedImage 绘制图像并保存在其对象中

g.drawImage(image, 0, 0, width, height, null);

g.dispose();

File f = new File(fileName);

// 通过 ImageIO 将图像写入到文件

ImageIO.write(bi, "jpg", f);

}

使用sendKeys(keysToSend) 批量上传文件

在Selenium2.0 之前,要上传文件是比较麻烦的一件事件,因为点击Upload File 控件会弹出Windows 窗口以提供用户选择文件,但是Window 窗口已经是浏览器之外的组件,所以Selenium 本身没办法控制,而必须使用Java Robot 类来模拟键盘去操作剪切板实现上传功能,而且及其不稳定。在Selenium 2.0 之后,WebDriver 解决了这个问题。前面已经谈到过,直接使用WebElement 类的sendKeys(keysToSend) 方法就可以实现文件上传了。但是如果想批量上传文件,使用element.sendKeys(“C:\\test\\upload\\test1.txt”, “C:\\test\\upload\\test2.txt”...) 方法也是不行的,它能通过执行,但是实际上没有上传成功。这时可以通过循环的方式来实现文件的批量上传,代码清单13 是我在百度云上面批量上传文件的测试。

清单13. 批量上传文件

/**

*

* @Description: 在百度云上测试文件批量上传功能,主要是通过循环的方式去做单一

* 的上传动作 , 登陆过程已经去掉

*/

@Test

public void test_mutilUploadFile() throws Exception {

System.out.println("upload start");

// 获取上传控件元素

WebElement uploadButton = driver.findElement(https://www.sodocs.net/doc/1e17816241.html,("html5uploader"));

// 构建上传文件路径,将需要上传的文件添加到 CharSequence 数组

CharSequence[] files = new CharSequence[5];

files[0] = "C:\\test\\test1.txt";

files[1] = "C:\\test\\test2.txt";

files[2] = "C:\\test\\test3.txt";

files[3] = "C:\\test\\test4.txt";

files[4] = "C:\\test\\test5.txt";

// 循环列出每支需要上传的文件路径,做单一上传动作

for(CharSequence file: files){

uploadButton.sendKeys(file);

}

Thread.sleep(2000);

System.out.println("upload end");

}

当执行结束后,效果如图1。

图1. 批量上传文件

结束语

在Selenium WebDriver 中,有了Actions 类和Keys 枚举对键盘和鼠标的操作已经做的非常到位,再结合Java 本身Robot、KeyEvent 等类的使用,基本上可以满足工作中遇到的对鼠标键盘操作的应用了。

其次要注意的地方是WebDriver 对浏览器的支持问题,Selenium WebDriver 支持的浏览器非常广泛,从IE、Firefox、Chrome 到Safari 等浏览器,WebDriver 都有相对应的实现:InterntExplorerDriver、FirefoxDriver、ChromeDriver、SafariDriver、AndroidDriver、IPhoneDriver、HtmlUnitDriver 等。根据个人的经验,Firefox 以及Chrome 浏览器对WebDriver 的支持最好了,Firefox 搭上Firebug 以及Firepath, 在写脚本的过程中非常方便,而ChromeDriver 是Google 公司自己支持与维护的项目。HtmlUnitDriver 速度最快,一个纯Java 实现的浏览器。IE 比较慢,而且对于Xpath 等支持不是很好。更多关于Selenium WebDriver 的知识,大家可以从下面的链接去访问Selenium 官方文档。

js滚动

JavascriptExecutor JS=(JavascriptExecutor) driver;

String high="scroll(0,10000);";

JS.executeScript(high);

鼠标的键盘使用方法

就可以用数字键盘控制了.1,2,3,6,9,8,7,4八个数字键是鼠标的(八个)方向键的替代键,5代替鼠标的单击(既可以是左键的单击,也可以是右键的单击,具体是哪 个键要看在tray中的鼠标键状态图标的指示),揿下5在鼠标键状态图标上的反应是相应的键的一次闪烁;“+”代替双击(同样也没有指定是哪个键的双击),在鼠标键图标 上的反应是相应的键连续闪烁两次;“*”代替左右两键的同时单击,在鼠标键图标上 的反应是相应的两个键同时闪烁一次,“/”是切换键,既是单击与双击间的切换,又是左键和右键间的切换;所有的这些状态都会在状态栏中的鼠标键图标上得到体现,当然左右键的状态是非常明显的显示在相应的图标上,而单击显示为灰色,双击显示为 黑色。“0(Ins)”键代替按下鼠标键(同样没有指明左右键),在鼠标键状态图标上的反应是相应的键由灰变黑,这个键为我们拖动文件夹,选择文档的部分内容提供了方便;“·(del)”键则代替释放鼠标键,在鼠标键图标上的反应是相应的键由黑变灰。还可以设置鼠标移动的速度(crl表示加速,shift表示减速),数字小键盘的开关键 不管你的桌面处于任何状态,按Win+E快捷键,打开Windows的资源管理器。此时 光标的默认位置定位于"我的电脑"上,按方向键移动到"控制面板"上,然后按Tab键跳动光标,继续按动方向键,选择"辅助选项",按Enter键确认,这时你会发现弹出一个"辅助选项属性"对话框。将Tab和方向键配合,选择对话框中的"鼠标"标签卡。到这一步,我们就可以着手设置"鼠标键"了。按下快捷键Alt+M,选中"使用'鼠标键'"复选框,就可以使"鼠标键"生效,做完这一步,可以使用小键盘来控制鼠标的指针方向和点击 操作。 上面的操作仅仅令"鼠标键"生效,如果想进一步设置鼠标键,则按Alt+S键,弹出"鼠 标键设置"对话框。按Alt+U选中"使用快捷方式",则以后你可以按"左Alt+在 Shift+NumLock"键以快速打开(关闭)"鼠标键"。按Alt+H选中"按住Ctrl键进行加速或按Shift键进行减速",则以后利用"鼠标键"移动"鼠标"时,可配合Ctrl键和Shift键 分别加速和减速移动鼠标指针。利用小键盘使用"鼠标键",NumLock是切换开关。如 果按"Alt+N"选定"打开",意即当NumLock按键处于打开状态时,小键盘用作"鼠标键";反之,按"Alt+F"选择"关闭",则意味着当NumLock按键处于关闭状态时,小键盘用作"鼠标键"。同理,按"Alt+S"键,选中"在屏幕上显示鼠标键状态"复选框,则可以看到 任务栏状态区中的"鼠标键"Tray标志,方便日后查看"鼠标键"状态以及设置相关参数。而鼠标键对鼠标操作的方法是: 1、移动 1) 要水平或垂直移动鼠标指针,请按小键盘上的"4"、"6"、"8"、"2"键,分别代表←、→、↑、↓四个方向。

adb shell中模拟键盘鼠标事件

Android自动化测试初探-5:再述模拟键盘鼠标事件(adb shell 实现) 2010-07-28 17:01 上一篇博文中讲述了通过Socket编程从外部向Emulator发送键盘鼠标模拟事件,貌似实现细节有点复杂。其实Android还有一种更简单的模拟键盘鼠标事件的方法,那就是通过使用adb shell 命令。 1. 发送键盘事件: 命令格式1:adb shell input keyevent “value” 其中value以及对应的key code如下表所列: KeyEvent Value KEYCODE Comment KEYCODE_UNKNOWN 1 KEYCODE_MENU 在SDK2.1的模拟器中命令失效,sendevent命令可行 2 KEYCODE_SOFT_RIGHT 3 KEYCODE_HOME 4 KEYCODE_BACK 5 KEYCODE_CALL 6 KEYCODE_ENDCALL

KEYCODE_0 8 KEYCODE_1 9 KEYCODE_2 10 KEYCODE_3 11 KEYCODE_4 12 KEYCODE_5 13 KEYCODE_6 14 KEYCODE_7 15 KEYCODE_8 16 KEYCODE_9 17 KEYCODE_STAR

KEYCODE_POUND 19 KEYCODE_DPAD_UP 20 KEYCODE_DPAD_DOWN 21 KEYCODE_DPAD_LEFT 22 KEYCODE_DPAD_RIGHT 23 KEYCODE_DPAD_CENTER 24 KEYCODE_VOLUME_UP 25 KEYCODE_VOLUME_DOWN 26 KEYCODE_POWER 27 KEYCODE_CAMERA 28 KEYCODE_CLEAR

模拟键盘鼠标事件

android中的MotionEvent 及其它事件处理 2014-09-18 08:47 7386人阅读评论(0) 收藏举报 MotionEvent对象 当用户触摸屏幕时将创建一个MotionEvent对象。MotionEvent包含关于发生触摸的位置和时间等细节信息。MotionEvent对象被传递到程序中合适的方法比如View对象的onTouchEvent()方法中。在这些方法中我们可以分析MotionEvent对象那个,以决定要执行的操作。 MotionEvent对象是与用户触摸相关的时间序列,该序列从用户首次触摸屏幕开始,经历手指在屏幕表面的任何移动,直到手指离开屏幕时结束。手指的初次触摸(ACTION_DOWN 操作),滑动(ACTION_MOVE操作)和抬起(ACTION_UP)都会创建MotionEvent对象。所以每次触摸时候这三个操作是肯定发生的,而在移动过程中会产生大量事件,每个事件都会产生对应的MotionEvent对象记录发生的操作,触摸的位置,使用的多大压力,触摸的面积,合适发生,以及最初的ACTION_DOWN和时发生等相关的信息。 在设置事件时我们有2种设置的方式,一种是委托式一种是回调式。第一种就是将事件的处理委托给监听器处理,你可以定义一个View.OnTouchListener接口的子类作为监听器,其中有onTouch()方法。而第二种是重写View类自己本身的onTouchEvent方法,也就是控件自己处理事件。onTouch方法接收一个MotionEvent参数和一个View参数,而onTouchEvent方法仅接收MotionEvent参数。这是因为监听器可以监听多个View 控件的事件。通过MotionEvent方法getation可以得到该Motionevent具体是哪个操作如ACTION_DOWN。 1、MotionEvent中getAction()与getActionMasked()的区别 如果我们在监听Ontouch()里面测试的时候会发现,这两个返回值竟然是一样的。查询API 我们发现ACTION_MASK说明是:Constant Value: 255 (0x000000ff)。也就是哦0Xff. public final intgetAction () Return the kind of action being performed. Consider using getActionMasked() and getActionIndex() to retrieve the separate masked action and pointer index. 翻译意思大概是返回action的类型,考虑使用getActionMasked()和getActionIndex()来获得单独的经过掩码的action和触控点的索引. public final intgetActionMasked () Return the masked action being performed, without pointer index information. Use getActionIndex() to return the index associated with pointer actions.

鼠标控制键盘

一般用左ALT+左SHIFT+NUM LOCK即可启动鼠标键。 首先打开控制面板,选中并打开辅助选项,单击“鼠标”标签,然后单击“使用鼠标键”状态框,使其状态为对勾,再单击“设置”按钮,在出现的“鼠标键设置”框里将鼠标速度调到最高和最快,最后依次按“确定”按钮。 鼠标键盘即“鼠标键”功能为开状态下的数字小键盘。具体键位功能如下: 除键“5”和键“0”外的八个数字键的功能分别为相应的鼠标图符运动方向, 键“5”功能为单击; 键“+”功能为双击; 键“0”功能为按住;其 键“.”功能为释放; 键“-”代表右键; 键“*”代表左右双键; 键“/”功能为恢复 键“5”单击鼠标左键的标准功能; 键“NumLock”为数字、鼠标键盘的切换键。 设置里:crl表示加速,shift表示减速 键按下时鼠标图符的移动是由慢到快加速进行的,当到达目标位置时松开即可。 执行程序或打开文档。 用鼠标键盘的方向键将鼠标图符移到程序或文档名处,敲击键“+”,功能实现。 选中。将鼠标图符移到目标处,敲击键“5”;或打开某文档,将鼠标图符移到预选中区域的首位置,敲击键“0”,再将鼠标图符移到预选中区域的尾位置,敲击键“.”,“选中”功能实现。拖放。选中目标,将鼠标图符移到选中区内,敲击键“0”,再将鼠标图符移到拖放目的位置,敲击键“.”,“拖放”功能实现。剪贴、复制、粘贴。选中目标,将鼠标图符移到目标区域内或目标位置,敲击键“-”(切换到鼠标右键),敲击键“5”(相当于单击鼠标右键),再将鼠标图符移到弹出选单的相应功能处,敲击键“/”(将键“5”的功能恢复到单击鼠标左键的标准状态),敲击键“5”,功能实现。现在用红外无线键盘和鼠标的人越来越多,当键盘技能当鼠标控制电脑时虽然不是那么的方便,当有时候也能应应急,感兴趣的人可以试试。

掌握 WINDOWS 操作系统中键盘和鼠标的基本操作;

步骤/方法 1 一:基本硬件组成简介 (1) 计算机的基本组成 计算机从外观上来瞧主要有主机与显示器组成,计算机系统由运算器,控制器,存储器,输入设备与输出设备五大部分组成。运算器与控制器集成在一起又称为中央处理器简称为CPU;存储器分为内部存储器与外部存储器,内部存储器简称为内存(RAM),外部存储器简称为外存如硬盘,光盘,移动磁盘等;输入设备就是用来从外界向计算机系统输入数据的唯一途径,常见的输入设备有鼠标,键盘,扫描仪等;输出设备就是计算机将处理结果显示给用户的,常见的输出设备有显示器,绘图仪,音响等。 (2) 主机的组成 主机由主板,内存, CPU,硬盘,光驱,数据线与电源。 (3) 主机面板按钮 开机按钮(Power),复位键(Rest)死机时按一下该键系统将重 新启动。 (4) 面板接口 计算机主机前面板上一般有USB与音响与话筒接口,BUS接口又称为即插即用接口(不用关闭计算机系统,在开机状态可以直接插),USB设备均可以使用此接口与计算机相连接,常见的USB设备有USB键盘,USB鼠标,USB口打印机,U 盘,移动硬盘等,此外还可以用来与数码相机,手机相连接。用户要特别注意的就是我们称USB设备为即插即用设备但就是向移动类存储磁盘最好不要直接拔出,

因为这样容易损坏磁盘导致数据丢失。正确的方法就是:单击桌面右下角的图标,然后单击右下角弹出的小窗口,等出现“安全删除USB”再拔下USB设备。计算机主机后面板上有电源,POST,串口,并口,显示器,网络,USB,音响与话筒接口,这些接口大部分就是主板上自带的。声卡,网卡,显卡可以就是主板上集成的设备也可以就是独立的设备。注:不同的主板接口布局有所不同,但就是接口规格与形 式都就是符合国际标准的。 串口:这种接口的数据传送模式就是串行通讯,所以它只能连接串行设备。 并口:这种接口的数据传送模式就是并行通讯,主要与并口设备连接,通常可以与 并口打印机相连接。 COM口:COM口有两个,一个COM口就是鼠标接口,一个COM口就是键盘接口,接口的旁边都有标示。 2 二:计算机软件介绍 (1)系统软件:Windows98/2000/2002/XP Windows优化大师。 (2)应用软件:Word/Excel/Photoshop(应用于某一领域)。 三:开机、关机 (1) 开机:①先打开显示器开关按钮(标有Power字样的按钮)。 ②再打开主机开关按钮(标有Power字样的按钮)。 (2) 关机:①单击“开始”菜单。 ②单击“关闭计算机”。 ③等待主机面板上的指示灯灭了以后,再关闭显示器的电源。 切不可在计算机工作的时候将电源突然切断,这样对硬盘就是有损害的,严重时

第三章常见的鼠标键盘交互方法

TrackBall模式 Trackball模式是跟踪球模式,具体来说,就是物体的中心位置不变,而改变视点的位置,从而使模型随着鼠标的移动绕着中心位置旋转。 对于鼠标移动需要计算相应的视点(照相机)的运动情况,在osg中,通过TrackballManipulator::calcMovement()来实现,并且对于不同的鼠标事件,分别进行如下的操作: 1.按下鼠标的左键,则旋转照相机。 2.按下鼠标中间键或者同时按下鼠标的左键和与右键,则改变物体的中心位置,也即对物体进行平移操作。 3.按下鼠标的右键,则对模型进行缩放。 在按下鼠标的左键从而旋转照相机时,这里主要模拟了一个跟踪球技术,球的半径理想情况下应该基于旋转中心到鼠标所指的物体上某点的距离,但是为了简化处理,一般情况下,球的半径TRACKBALLSIZE可以预先给定,也能达到比较好的模拟效果。具体实现过程如下:首先分别记录两次鼠标事件的坐标的(x1,y1)和(x2,y2),根据x坐标的最小值X min和最大值X max,以及y坐标的最小值Y min和最大值Y max,对(x1,y1)和(x2,y2)坐标进行规范化,转化到(-1,1)之间,不妨假设新的坐标点为p1和p2,然后通过将p1和p2投影到跟踪球上,从而获取相应的z 坐标。这样,以球的中心为起始点,计算出的球上的两个点为终点,可以确定两个向量,不妨记作P1和P2,那么旋转轴axis = P2^ P1,旋转的弧度为:t = ||(P2- P1)|| / (2.0*TRACKBALLSIZE),为了避免产生某些不可操纵的结果,必须先将t规范到(-1,1)之间,再将其转化为角度angles,然后将照相机绕着axis旋转angles的角度,从而实现了对照相机的旋转操作。 在osg的实现中,该跟踪球并不是一个正规的球体,而是进行了一定的变形,在中心附近是一个半径为TRACKBALLSIZE的球体,而在离中心达到一定距离时(小于球的半径TRACKBALLSIZE),该球体被扭曲成了四个双曲面。 在Trackball模式的具体实现时,有许多细节问题,如 1.首先需要将世界坐标系转化到视点坐标系,这可以通过先将中心平移到视点后根据照相机的up、物体的中心以及视点重新确立坐标系。在osg中,由void TrackballManipulator::computePosition(const osg::Vec3& eye,const osg::Vec3& center,const osg::Vec3& up)实现。 2.模型的旋转通过鼠标控制,因此需要判断鼠标是否移动,具体实现时,可以预先自定义一个速率v,分别记录下连续两次鼠标事件的时间和位置,计算出间隔的时间?t和移动的距离?s,如果?s > v * ?t,就可以认为鼠标移动,并根据鼠标的具体事件(如按下的是左键、右键等)进行相应的操作。在osg中,由bool TrackballManipulator::isMouseMoving()实现。 3.需要有一个函数接收不同的鼠标和键盘事件,从而做出相应的处理。在osg中,由bool TrackballManipulator::handle(const GUIEventAdapter& ea,GUIActionAdapter& us)实现,如果事件被正确处理,返回true,否则返回false。其中GUIEventAdapter接受来自GUI的更新事件,GUIActionAdapter则是对这些GUI事件的回应。 Quaternion The quaternions are members of a noncommutative division algebra first invented by William Rowan Hamilton. The idea for quaternions occurred to him while he was walking along the Royal

android详细解释键盘和鼠标事件

https://www.sodocs.net/doc/1e17816241.html,/jinhaijian/article/details/6013985 目的:通过全面的分析Android的鼠标和键盘事件。了解Android中如何接收和处理键盘和鼠标事件,以及如何用代码来产生事件。 主要学习内容: 1. 接收并处理鼠标事件:按下、弹起、移动、双击、长按、滑动、滚动 2. 接收并处理按键事件:按下、弹起 3. 模拟鼠标/按键事件 1. Android事件 现代的用户界面,都是以事件来驱动的来实现人机交换的,而Android上的一套UI控件,无非就是派发鼠标和键盘事件,然后每个控件收到相应的事件之后,做相应的处理。如Button 控件,就只需要处理Down、move、up这几个事件,Down的时候重绘控件,move的时候一般也需要重绘控件,当up的时候,重绘控件,然后产生onClick事件。在Android中通过实现OnClickListener接口的onClick方法来实现对Button控件的处理。 对于触摸屏事件(鼠标事件)有按下有:按下、弹起、移动、双击、长按、滑动、滚动。按下、弹起、移动(down、move、up)是简单的触摸屏事件,而双击、长按、滑动、滚动需要根据运动的轨迹来做识别的。在Android中有专门的类去识别,android.view.GestureDetector。 对于按键(keyevent),无非就是按下、弹起、长按等。 2. Android事件处理 Android手机的坐标系是以左上定点为原点坐标(0,0), 向右为X抽正方形,向下为Y抽正方向。 2.1 简单触摸屏事件 在Android中任何一个控件和Activity都是间接或者直接继承于android.view.View。一个View对象可以处理测距、布局、绘制、焦点变换、滚动条,以及触屏区域自己表现的按键

)掌握 WINDOWS 操作系统中键盘和鼠标的基本操作;备课讲稿

)掌握W I N D O W S操作系统中键盘和鼠标的 基本操作;

步骤/方法 1 一:基本硬件组成简介 (1)计算机的基本组成 计算机从外观上来看主要有主机和显示器组成,计算机系统由运算器,控制器,存储器,输入设备和输出设备五大部分组成。运算器和控制器集成在一起又称为中央处理器简称为CPU;存储器分为内部存储器和外部存储器,内部存储器简称为内存(RAM),外部存储器简称为外存如硬盘,光盘,移动磁盘等;输入设备是用来从外界向计算机系统输入数据的唯一途径,常见的输入设备有鼠标,键盘,扫描仪等;输出设备是计算机将处理结果显示给用户的,常见的输出设备有显示器,绘图仪,音响等。 (2)主机的组成 主机由主板,内存, CPU,硬盘,光驱,数据线和电源。 (3)主机面板按钮 开机按钮(Power),复位键(Rest)死机时按一下该键系统将重 新启动。 (4)面板接口 计算机主机前面板上一般有USB和音响和话筒接口,BUS接口又称为即插即用接口(不用关闭计算机系统,在开机状态可以直接插),USB设备均可以使用此接口和计算机相连接,常见的USB设备有USB键盘,USB鼠标,USB 口打印机,U盘,移动硬盘等,此外还可以用来和数码相机,手机相连接。用

户要特别注意的是我们称USB设备为即插即用设备但是向移动类存储磁盘最好不要直接拔出,因为这样容易损坏磁盘导致数据丢失。正确的方法是:单击桌面右下角的图标,然后单击右下角弹出的小窗口,等出现“安全删除USB”再拔下USB设备。计算机主机后面板上有电源,POST,串口,并口,显示器,网络,USB,音响和话筒接口,这些接口大部分是主板上自带的。声卡,网卡,显卡可以是主板上集成的设备也可以是独立的设备。注:不同的主板接口布局有所不同,但是接口规格和形式都是符合国际标准的。 串口:这种接口的数据传送模式是串行通讯,所以它只能连接串行设备。 并口:这种接口的数据传送模式是并行通讯,主要和并口设备连接,通常可以和并口打印机相连接。 COM口:COM口有两个,一个COM口是鼠标接口,一个COM口是键盘接口,接口的旁边都有标示。 2 二:计算机软件介绍 (1)系统软件:Windows98/2000/2002/XP Windows优化大师。(2)应用软件:Word/Excel/Photoshop(应用于某一领域)。 三:开机、关机 (1)开机:①先打开显示器开关按钮(标有Power字样的按钮)。 ②再打开主机开关按钮(标有Power字样的按钮)。 (2)关机:①单击“开始”菜单。 ②单击“关闭计算机”。

键盘各键的值及事件

1、Dialog类 Dialog(Frame f,String s) 构造对话框,初始不可见,s是标题,f是对话框所依赖的窗口Dialog(Frame f,String s,boolean b) b设置初始是否可见 getTitle() 获取对话框标题 setTitle(String s) 设置对话框标题 setModal(boolean b) 设置对话框模式 setSize(int w,int h) 设置对话框大小 setVisible(boolean b) 显示或隐藏对话框 2、FileDialog类 Filedialog(Frame f,String s,int mode) mode的值是fileDialog.LOAD或者fileDialog.SAVE public String getDirectory() 获取当前文件对话框中显示的文件所属目录 public String getFile() 获取当前文件对话框中文件的字符串表示,不存在返回null Java中的鼠标和键盘事件 1、使用MouseListener借口处理鼠标事件 鼠标事件有5种:按下鼠标键,释放鼠标键,点击鼠标键,鼠标进入和鼠标退出 鼠标事件类型是MouseEvent,主要方法有: getX(),getY() 获取鼠标位置 getModifiers() 获取鼠标左键或者右键 getClickCount() 获取鼠标被点击的次数 getSource() 获取鼠标发生的事件源 事件源获得监视器的方法是addMouseListener(),移去监视器的方法是removeMouseListener() 处理事件源发生的时间的事件的接口是MouseListener 接口中有如下的方法mousePressed(MouseEvent) 负责处理鼠标按下事件 mouseReleased(MouseEvent) 负责处理鼠标释放事件 mouseEntered(MouseEvent) 负责处理鼠标进入容器事件 mouseExited(MouseEvent) 负责处理鼠标离开事件 mouseClicked(MouseEvent) 负责处理点击事件 2、使用MouseMotionListener接口处理鼠标事件 事件源发生的鼠标事件有2种:拖动鼠标和鼠标移动 鼠标事件的类型是MouseEvent 事件源获得监视器的方法是addMouseMotionListener() 处理事件源发生的事件的接口是MouseMotionListener 接口中有如下的方法mouseDragged() 负责处理鼠标拖动事件 mouseMoved() 负责处理鼠标移动事件 3、控制鼠标的指针形状 setCursor(Cursor.getPreddfinedCursor(Cursor.鼠标形状定义)) 鼠标形状定义见(书P 210)4、键盘事件 键盘事件源使用addKeyListener 方法获得监视器 键盘事件的接口是KeyListener 接口中有3个方法 public void keyPressed(KeyEvent e) 按下键盘按键 public void keyReleased(KeyEvent e) 释放键盘按键 public void keyTypde(KeyEvent e) 按下又释放键盘按键

掌握 WINDOWS 操作系统中键盘和鼠标的基本操作;

步骤/方法 1 一:基本硬件组成简介1(?)计算机的基本组成 计算机从外观上来看主要有主机和显示器组成,计算机系统由运算器,控制器,存储器,输入设备和输出设备五大部分组成。运算器和控制器集成在一起又称为中央处理器简称为CPU;存储器分为内部存储器和外部存储器,内部存储器简称为内存(RAM),外部存储器简称为外存如硬盘,光盘,移动磁盘等;输入设备是用来从外界向计算机系统输入数据的唯一途径,常见的输入设备有鼠标,键盘,扫描仪等;输出设备是计算机将处理结果显示给用户的,常见的输出设备有显示 器,绘图仪,音响等。 (2)主机的组成 主机由主板,内存,CPU,硬盘,光驱,数据线和电源。 (3) 主机面板按钮?开机按钮(Power),复位键(Rest)死机时按一下该键系统将重 新启动。?(4)面板接口 计算机主机前面板上一般有USB和音响和话筒接口,BUS接口又称为即插即用接口(不用关闭计算机系统,在开机状态可以直接插),USB设备均可以使用此接口和计算机相连接,常见的USB设备有USB键盘,USB鼠标,USB口打印机,U盘,移动硬盘等,此外还可以用来和数码相机,手机相连接。用户要特别注意的是我们称USB设备为即插即用设备但是向移动类存储磁盘最好不要直接拔出,因为这样容易损坏磁盘导致数据丢失。正确的方法是:单击桌面右下角的图标,然后单击右下角弹出的小窗口,等出现“安全删除USB”再拔下USB设备。计算机主机后面板上有电源,POST,串口,并口,显示器,网络,USB,

音响和话筒接口,这些接口大部分是主板上自带的。声卡,网卡,显卡可以是主板上集成的设备也可以是独立的设备。注:不同的主板接口布局有所不同,但是接口规格和形式都是符合国际标准的。?串口:这种接口的数据传送模式是串行通讯,所以它只能连接串行设备。 并口:这种接口的数据传送模式是并行通讯,主要和并口设备连接,通常可以和并口打印机相连接。 COM口:COM口有两个,一个COM口是鼠标接口,一个COM口是键盘接口,接口的旁边都有标示。 ?2?二:计算机软件介绍 (1)系统软件:Windows98/2000/2002/XP Windows优化大师。?(2)应用软件:Word/Excel/Photoshop(应用于某一领域)。?三:开机、关机?(1)开机:①先打开显示器开关按钮(标有Power字样的按钮)。 ②再打开主机开关按钮(标有Power字样的按钮)。 (2)关机:①单击“开始”菜单。 ②单击“关闭计算机”。?③等待主机面板上的指示灯灭了以后,再关闭显示器的电源。 切不可在计算机工作的时候将电源突然切断,这样对硬盘是有损害的,严重时会 造成数据丢失或损坏硬盘。 四:键盘简介?键盘是计算机必不可少的输入设备,目前使用最广泛的是101或 102键的键盘。根据键盘使用功能可 以将键盘分为三个区:功能键盘区,打字键盘区和数字小键盘区。 (1) 功能键盘区:包括Esc,F1----F12,Tab,CapsLooK,Shif t,Ctrl,Alt,PrintScreen,ScrollLock,Pause,In sert,Home,PageUp,Delete,End,PageDown,NumLock等

QT 篇键盘、鼠标事件的处理

键盘、鼠标事件的处理 事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。对于初学者,总会对Qt中信号和事件的概念混淆不清。其实,记住事件比信号更底层就可以了。比如说,我们用鼠标按下界面上的一个按钮,它会发射clicked()单击信号,但是,它怎么知道自己被按下的呢,那就是通过鼠标事件处理的。这里可以看到,鼠标事件比信号更底层。 在Qt中处理事件有多种方法,不过最常用的是重写Qt事件处理函数。这里我们就以鼠标事件和键盘事件为例来进行简单的介绍。 一、鼠标事件 1.新建Qt Gui应用,项目名称为“myEvent”,基类更改为QWidget,类名为Widget。 2.完成项目创建后,在设计模式向界面上拖入一个Push Button。 3.在widget.h文件添加鼠标按下事件处理函数声明: protected: void mousePressEvent(QMouseEvent*); 4.到widget.cpp文件中先添加头文件包含: #include 然后在下面添加函数的定义: void Widget::mousePressEvent(QMouseEvent*e) { ui->pushButton->setText(tr("(%1,%2)").arg(e->x()).arg(e->y())); } 这里的arg()里的参数分别用来填充%1和%2处的内容,arg()是QString类中的一个静态函数,使用它就可以在字符串中使用变量了。其中x()和y()分别用来返回鼠标光标所在位置的x和y坐标值。这样,当鼠标在界面上点击时,按钮就会显示出当前鼠标的坐标值。效果如下图所示。

使用一个鼠标和键盘控制两台电脑的方法

使用一个鼠标和键盘控制两台电脑的方法 几年前在IBM的时候,大家习惯用双显示器,因为显卡支持,一台机器可以外接两个显示器,一个显示器用来写代码,另一个显示用来看效果,不需要来回切换,十分方便。 最近会抽点时间做些iPad上的项目,所以在我的办公位上有一台苹果,还有一个xp的本。两套键盘和鼠标一摆,十分的不爽。换来换去的影响效率更影响心情。十分怀念当时一个键盘和鼠标能控制两个显示器的日子,于是想找下有没有一个鼠标和键盘控制两台电脑的可能。

因为是不同的操作系统,分别在两台机器上,本来不抱多少希望,没想到一搜之下竟然让我发现意外惊喜。 https://www.sodocs.net/doc/1e17816241.html,/ 让我发现了Synergy这个工具,下载地址: https://www.sodocs.net/doc/1e17816241.html,/projects/synergy2/files/ 看了这段介绍,发现正是我想要的: Synergy lets you easily share a single mouse and keyboard between multiple computers with different operating systems without special hardware. It's intended for users with multiple computers on their desk since each system uses its own display. 在xp上安装比较容易,因为有图形处理界面,点点选选就搞定了。而在苹果系统相对要麻烦些,需要修改配置文件:synergy.conf。 我还是习惯在xp上操作多些,于是就把xp设置为host

VB_鼠标、键盘事件和ASCII码表

一、鼠标事件 Cilck:用户单击鼠标键时发生 DbLClick:用户双击鼠标键时发生 MouseDown:用户释放鼠标键时发生 MouseMove:移动鼠标时发生 二、键盘事件 KeyDown:在键按下时触发。(可获得一个KeyCode值) KeyUp:在键弹起时触发。(可获得一个KeyCode值) KeyPress:在键盘按下再弹起时发生。(它可获得KeyAscii值) 注: 1、既然有了KeyDown和KeyUp,为什么还要KeyPress事件,我将键盘按下去后,到底是触发了KeyPress事件,还是KeyDown或KeyUp事件?答案是,当我们按了一下键盘后,这三种事件都触发。 2、一般而言,大多数程序并不关心KeyDown事件来确定按下的键,KeyPress事件在触发后,能够获得一个KeyAscii值。它指键盘上的某个键与计算机ASCII码对应的值,如键“1”,KeyAscii为49;“A”,KeyAscii 为65;“Enter”,KeyAscii为13。当我们在KeyPress事件中将KeyAscii 的值改为0后,就等于禁止键入。 3、然而并不是所有键盘上的键都有其KeyAscii值,有时,我们程序要判断用户是否按了功能键,可要区别数字小键盘和常规数字键时,那么KeyAscii就无能为力了。此时可以考虑KEyDown和KeyUp事件,当用户击键后,它们能获得一个唯一的KeyCode值,从而判断用户到底按了键盘上的哪个键。可以说,键盘上大多数键(Tab、PrintScreen键除外),都有唯一的KeyCode序列号。

常用的 ASCII 码表(0-127)

不用鼠标怎么用键盘操作电脑

不用鼠标怎么用键盘操作电脑.有哪些快捷键? 快捷键大全 F1 显示当前程序或者windows的帮助内容。 F2 当你选中一个文件的话,这意味着“重命名” F3 当你在桌面上的时候是打开“查找:所有文件” 对话框 F10或ALT 激活当前程序的菜单栏 windows键或CTRL+ESC 打开开始菜单 CTRL+ALT+DELETE 在win9x中打开关闭程序对话框 DELETE 删除被选择的选择项目,如果是文件,将被放入回收站 SHIFT+DELETE 删除被选择的选择项目,如果是文件,将被直接删除而不是放入回收站CTRL+N 新建一个新的文件 CTRL+O 打开“打开文件”对话框 CTRL+P 打开“打印”对话框 CTRL+S 保存当前*(糙)*作的文件 CTRL+X 剪切被选择的项目到剪贴板 CTRL+INSERT 或CTRL+C 复制被选择的项目到剪贴板 SHIFT+INSERT 或CTRL+V 粘贴剪贴板中的内容到当前位置 ALT+BACKSPACE 或CTRL+Z 撤销上一步的*(糙)*作 ALT+SHIFT+BACKSPACE 重做上一步被撤销的*(糙)*作 Windows键+M 最小化所有被打开的窗口。 Windows键+CTRL+M 重新将恢复上一项*(糙)*作前窗口的大小和位置 Windows键+E 打开资源管理器 Windows键+F 打开“查找:所有文件”对话框 Windows键+R 打开“运行”对话框 Windows键+BREAK 打开“系统属性”对话框 Windows键+CTRL+F 打开“查找:计算机”对话框 SHIFT+F10或鼠标右击打开当前活动项目的快捷菜单 SHIFT 在放入CD的时候按下不放,可以跳过自动播放CD。在打开word的时候按下不放,可以跳过自启动的宏 ALT+F4 关闭当前应用程序 ALT+SPACEBAR 打开程序最左上角的菜单 ALT+TAB 切换当前程序 ALT+ESC 切换当前程序 ALT+ENTER 将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换 PRINT SCREEN 将当前屏幕以图象方式拷贝到剪贴板 ALT+PRINT SCREEN 将当前活动程序窗口以图象方式拷贝到剪贴板 CTRL+F4 关闭当前应用程序中的当前文本(如word中) CTRL+F6 切换到当前应用程序中的下一个文本(加shift 可以跳到前一个窗口) 在IE中: ALT+RIGHT ARROW 显示前一页(前进键) ALT+LEFT ARROW 显示后一页(后退键)

Windows操作基础之鼠标和键盘的使用

Windows操作基础之鼠标和键盘的使用 【教学内容】 windows基础鼠标和键盘的使用。 【教学目标】 1.认识鼠标、了解鼠标的功能,熟练掌握鼠标的操作方法; 2.初步认识键盘,了解键盘上的区域划分; 3.熟练掌握常用特殊键的使用; 【教学重点、难点】 重点是鼠标的操作方法,键盘常用键的使用。 【教学手段、方法】 以讲授法为主,涉及练习、分析归纳等方法。借助多媒体呈现归纳内容。 【教学内容及过程】 师:之前大家已经学习过计算机系统组成,大家还记得计算机的的输入设备都有哪些呢?鼠标和键盘都是计算机基本的输入设备,这节课我将和大家一起学习鼠标和键盘的使用。大家先用3分钟的时间浏览一下课本第15页到16页的内容。 师:大部分同学已经看完书,接下来一起来看老师的课件,大家看一下图片上的东西想什么?这时世界上的第一个鼠标,1968年12月9日,它诞生于美国加州斯坦福大学。 鼠标的分类:按鼠标的内部构造可分:为机械式、光机式和光电式 //机械式鼠标由鼠标底部的胶质小球带动X方向滚轴和Y方向滚轴,在滚轴的末端有译码轮,译码轮附有金属导电片与电刷直接接触。鼠标的移动带动小球的滚动,再通过摩擦作用使两个滚轴带动译码轮旋转,接触译码轮的电刷随即产生与二维空间位移相关的脉冲信号。由于电刷直接接触译码轮和鼠标小球与桌面直接摩擦,所以精度有限,电刷和译码轮的磨损也较为厉害,直接影响机械鼠标的寿命。因此,机械式鼠标已基本淘汰而同样价廉的光机鼠取而代之。 所谓光机鼠标,顾名思义就是一种光电和机械相结合的鼠标。光机鼠在机械鼠标的基础上将磨损最厉害的接触式电刷和译码轮改进成为非接触式的LED对射光路元件(主要是由一个发光二极管和一个光栅轮),在转动时可以间隔的通过光束来产生脉冲信号。

重装系统时,USB接口鼠标和键盘不能使用的解决办法

重装系统时,USB接口鼠标和键盘不能使用的解决办法 现在的电脑基本都是USB接口的鼠标和键盘了。但是有的朋友想重装系统的时候,发现USB鼠标和键盘都不能用,安全模式也无法进入,按不了上面的选项,同时等那段时间过后自动进入系统后就可以用了,简直没办法重装系统了,这个是怎么回事呢? 这是因为你的键盘是USB插口的,因为没进入系统的时候USB还无法实现数据传输。建议使用普通的圆口的,如果没有圆口鼠标,就请重新设置bios里的USB选项把USB键盘功能功能打开.就可以了 开启USB鼠标键盘功能步骤如下: 重起电脑,按住DEL不放,进入蓝屏的bios设置页面,弹出菜单,这个是左边的一行: Standard Cmos Features Advanced Bios Features In Tegrated periphrels Power Manage Ment Setup Pnp/Pcl Contigurations Oc Health Status 按键盘上的向上下左右小箭头“移动光标”位置,键盘最左上角的“Esc”菜单键是返回当进入Bios 时的菜单,回车是“确定”,按F10保存退出,最后再按“Y”,也就是Yes,是的意思,再确定一下。请朋友们看准,不要胡乱改参数,这个设置是很简单的,不放心的朋友可以笔记一下。

进入In Tegrated periphrels(集成设备设定,选择ONBOARD DERIVE,再选择USB KEYBOARD SUPPOR 设置为Enable即可。下面还有个MOUSE SUPPOR,是USB鼠标的支持。 (转)另外关于U盘、USB鼠标、USB键盘,在进入安装界面后失效的问题(无论是否插在3.0都会失效),其根本原因是intel XHCI控制器的问题,intel的xhci 控制器提供了一个smart auto功能,俗称“聪明”,但聪明过头了,通常,当我们进入win8pe,或者从win8返回到win7系统时,当win7系统还没安装usb3.0驱动,发现所有usb设备不可用,想装驱动吧,键盘鼠标动不了。。。。 解决方法: 进入bios设置,找到XHCI设置,将其中的SMART AUTO改成AUTO。(auto 会自动识别插入的设备,如果是2.0则用echi,如果是3.0则xhci,建议设置auto),如果还有问题,建议彻底关闭电源(指移除市电220v接入10秒钟,后再接通电源开机) 测试成功

java鼠标键盘事件及实例

鼠标监听器 鼠标监听器mouseListener监听鼠标事件MouseEvent。相应事件和处理方法如下表: 鼠标事件处理方法 MOUSE_CLICKED MouseClicked (MouseEvent) 鼠标点击(单或双)MOUSE_PRESSED MousePressed (MouseEvent) 鼠标按下 MOUSE_RELEASED MouseReleased(MouseEvent) 鼠标松开 MOUSE_ENTERED MouseEntered (MouseEvent) 鼠标进入(某组件区域)MOUSE_EXITED MouseExited (MouseEvent) 鼠标离开(某组件区域) 鼠标事件MouseEvent常用方法 int getClickCount() 得到点击次数1 OR 2; int getX(), int getY() 得到鼠标的(象素)位置。 对于鼠标的移动和拖放,另外用鼠标运动监听器mouseMotionListener。因为许多程序不需要监听鼠标运动,把两者分开可简化程序。有两个方法处理鼠标运动事件: MOUSE_MOVED MouseMoved (MouseEvent) 鼠标在移动 MOUSE_DRAGGED MouseDragged(MouseEvent) 鼠标被拖动 下面的例程演示简单的鼠标监听,并在屏幕上输出鼠标操作的信息。 例2 下面是讨论MouseMotionListener的使用时机,它提供的下面的两个方法,可让你随时掌握鼠标的坐标,并处理拖曳鼠标的操作。 MouseMotionListener mouseDragged(MouseEvent e) mouseMoved(MouseEvent e) ----------------------------------------------------------------------- 下面的范例让你知道鼠标在JFrame上的坐标,并拖曳出直线来。

vb中键盘鼠标事件

第12章键盘与鼠标事件过程 Visual Basic应用程序能够响应多种键盘事件和鼠标事件。例如,窗体、图片框与图像控件都能检测鼠标指针的位置,并可判定其左、右键是否已经按下,还能响应鼠标按钮与Shift、Ctrl或Alt键的各种组合。利用键盘事件可以编程响应多种键盘操作,也可以解释、处理ASCII字符。Visual Basic应用程序还支持大多数控件及OLE的拖放功能,可用控件的Drag方法连同某些属性和事件宋实现控件的拖放操作。OLE的拖放使应用程序的数据交换功能大大增强。 本章将对键盘和鼠标事件进行详细讲解,使读者掌握利用键盘和鼠标进行编程的基本技术。 12.1键盘事件 键盘事件是用户与程序之间交互操作中的主要元素之—。单击鼠标和按下按键都可以触发事件,而且还提供进行数据输入的手段以及在窗口和菜单中移动的基本形式。 键盘事件有三种,即KeyPress、KeyUp和KeyDown事件。窗体和可接受键盘输入的控件(如文本框TextBox、命令按钮CommandButton、图片框PictureBox、组合框ComboBox 等)都可识别这些事件。值得注意的是,只有获得焦点的对象才能够接受键盘事件。对于窗体,只有成为活动窗体并且窗体中的任何控件均未获得焦点时,才会产生窗体的键盘事件。窗体中任何控件已经获得焦点时,会产生控件的键盘事件。 12.1.1 KeyPress事件 当用户按下键盘上的某个键时,将触发KeyPress事件。该事件可以用于窗体和大部分标准控件,严格来说,当按下某个键时,所触发的是具有输入焦点(FOCUS)的那个控件的KeyPress事件。在某一时刻,输入焦点只能位于某一个控件上,如果窗体上没有可见或有效的控件,则输入焦点位于窗体上。当一个控件或窗体拥有输入焦点时,该控件或窗体将接受从键盘上输入的信息。例如,假定一个文本框拥有输入焦点,则从键盘上输入的任何字符都将在该文本框上回显。 KeyPress事件过程的一般格式是: Private Sub对象名KeyPress(KeyAscii as Integer) 事件过程 End Sub 如果接受KeyPress事件的对象为控件数组,对应的事件过程的格式为: Private Sub 对象名_KeyPress(Index as Integer,KeyAscii AS Integer) 事件过程 End Sub 其中,“Index”是数组元素的下标。 说明: (1)“对象名”是接受键盘事件的对象的名称,如文本框、窗体等。 (2)KeyAscii为KeyPress事件过程的参数,返回用户所按键的ASCII值。如按下小写字母“a”时返回97,按下大写字母“A”时则返回65。相应的小写字母ASCII值比大写字母大32。0~9的ASCII值为48~57之间。在KeyPress事件过程中,将KeyAscii的值改为0,可以取消该字符和这次按键操作。 注意:在默认状态下控件的键盘事件优于窗体的键盘事件,冈此在发生键盘事件时,总是先激活控件的键盘事件。如果希望窗体先接受键盘事件,则必须把窗体的KeyPreviev属性设置为True,否则不能激活窗体的键盘事件。这里所说的键盘事件包括KeyPress、KeyDown

相关主题