<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="/xsl/rss.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:ppp="http://blog.sohu.com/rss/module/ppp/"
	>

	<channel>
		<title>just test it!</title>
		<link>http://678ba.blog.sohu.com/</link>
		<description><![CDATA[testing is my life]]></description>
		<pubDate>Sun, 22 Jun 2008 22:13:38 +0800</pubDate>
		<generator>搜狐博客</generator>
		<ppp:ebi>027a8ea792</ppp:ebi>
		<image>
			<title>http://blog.sohu.com</title>
			<url>http://js.pp.sohu.com/ppp/blog/images/common/logo_150_60.gif</url>
			<link>http://blog.sohu.com/</link>
			<width>100</width>
			<height>43</height>
			<description>搜狐博客</description>
		</image>
		<item>
			<title>软件测试工作需掌握的Linux的快捷键和主要命令</title>
			<link>http://678ba.blog.sohu.com/90826854.html</link>
			<comments>http://678ba.blog.sohu.com/90826854.html#comment</comments>
			<dc:creator>just test it!</dc:creator>
			<pubDate>Sun, 22 Jun 2008 22:13:38 +0800</pubDate>
			<category>Linux初探</category>
			<guid>http://678ba.blog.sohu.com/90826854.html</guid>
			<description><![CDATA[<p><a href="#" target="_self"><u><strong>Linux</strong></u></a>基本的键盘输入快捷键和一些常用命令----人人为我，我为人人<br />&lt;Ctrl&gt;&lt;Alt&gt;&lt;F1&gt; <br />切换到第一个文本终端。在Linux下你可以有多达六个不同的终端。这个命令的意思是：&ldquo;同时按住&lt;Ctrl&gt;键和&lt;Alt&gt;键，然后按&lt;F1&gt;键，再释放所有的键&rdquo;。</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;Fn&gt; (n=1..6)</p>
<p>切换到第n个文本终端。（你也可以使用不是很经常用到的命令chvt n 来实现，n指的是第n个文本终端）。在文本终端下（不是在X窗口）,你也可以简单使用&lt;ALT&gt;&lt;Fn&gt;来实现切换，不需要&lt;CTRL&gt;键。</p>
<p>打印出你正在使用的终端名称，如果你希望知道终端的名字，可以使用命令fgconsole。</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;F7&gt;</p>
<p>切换到第一个图形用户界面（一般来说X-window在第七个终端）</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;Fn&gt; (n=7到12)</p>
<p>切换到第n个图形用户街面。根据缺省，第一个X-Window在第7个终端运行，从第8到第12什么也没有，当然你可以逐个启动这些图形用户界面。</p>
<p>&lt;Tab&gt;</p>
<p>（在文本终端下）可以使用TAB自动完成命令，或者显示所有的可选项。这个快捷键真的非常好用，经常使用你会发觉它可以节约你很多的时间。</p>
<p>&lt;ArrowUp&gt;</p>
<p>（在文本终端或者X窗口下）滚动和编辑以前输入的命令。按&lt;ENTER&gt;执行一个历史命令</p>
<p>&lt;ArrowDown&gt;</p>
<p>回滚</p>
<p>&lt;Shift&gt;&lt;PgUp&gt;</p>
<p>滚动终端输出。对于登录提示也起作用，所以你可以使用它回滚启动信息。你显卡的内存大小决定你可以回滚多少内容</p>
<p>&lt;Shift&gt;&lt;PgDown&gt;</p>
<p>回滚终端输出</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;+&gt;</p>
<p>（在X窗口下) 改变X服务器的屏幕解析率 (如果你设置X服务器有多个不同的屏幕解析率)。比如对于我的标准SVGA卡和显示器，在文件/etc/X11/XF86Config有以下的设置行: （从缺省开始，到可以支持的最大虚拟屏幕解析率）</p>
<p>Modes &quot;1024x768&quot; &quot;800x600&quot; &quot;640x480&quot; &quot;512x384&quot; &quot;480x300&quot; &quot;400x300&quot; &quot;1152x864&quot;Z</p>
<p>当然，首先我必须设置我的X服务器，可以使用using Xconfigurator, xf86config, 也可以手工编辑文件：/etc/X11/XF86Config。XFdrake (Mandrake使用图形用户界面进行配置 )。你也可以参考命令xvidtune和xvidgen。</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;-&gt;</p>
<p>（在X窗口下）把X服务器的屏幕解析率修改到上一次的设置。</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;Esc&gt;</p>
<p>（在X窗口，KDE下）关闭我鼠标将要指向的窗口（鼠标的光标形状会有所改变）。同样的效果也可以使用命令xkill（在X终端上）来实现。当一个程序窗口被挂住的时候特别有用。</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;BkSpc&gt;</p>
<p>（在X窗口下) 终止当前的 X窗口服务。如果X窗口不能正常退出时可以使用。</p>
<p>&lt;Ctrl&gt;&lt;Alt&gt;&lt;Delete&gt;</p>
<p>（适用于文本终端下）关机和重新启动。这是一个在文本终端下的正常关机命令，千万不要按计算机上的reset键来重新关机和重新启动！</p>
<p>&lt;Ctrl&gt;c</p>
<p>终止当前进程（对于一般的小型文本模式的应用程序）</p>
<p>&lt;Ctrl&gt;d</p>
<p>（在一个空白的命令行上输入）退出当前的终端。参加下一个命令。</p>
<p>&lt;Ctrl&gt;d</p>
<p>给当前的进程送文件结束符合。不要按两次否则你会把自己退出系统。</p>
<p>&lt;Ctrl&gt;s</p>
<p>停止终端传输</p>
<p>&lt;Ctrl&gt;q</p>
<p>从新开始终端传输。如果你的终端突然莫名其妙的停止响应，可以参考上一条命令。</p>
<p>&lt;Ctrl&gt;z</p>
<p>把当前进程送到后台处理。</p>]]></description>
		</item>
		    
		
		<item>
			<title>揭秘QTP的DeviceReplay对象 五</title>
			<link>http://678ba.blog.sohu.com/90805937.html</link>
			<comments>http://678ba.blog.sohu.com/90805937.html#comment</comments>
			<dc:creator>just test it!</dc:creator>
			<pubDate>Sun, 22 Jun 2008 17:43:35 +0800</pubDate>
			<category>自动化测试工具</category>
			<guid>http://678ba.blog.sohu.com/90805937.html</guid>
			<description><![CDATA[<h2>Key Codes参考</h2>
<h2><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/Testing_is_believing/QTP_DeviceReplay_4.JPG" /></h2>
<p align="center"><font size="5"></font></p>
<table cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td valign="top">
<p><strong><font size="3">常量</font></strong></p></td>
<td valign="top">
<p><strong><font size="3"><font face="Times New Roman">#</font></font></strong></p></td>
<td valign="top">
<p><strong><font size="3">描述</font></strong></p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_ESCAPE</p></td>
<td valign="top">
<p align="left">1</p></td>
<td valign="top">
<p align="left">主要用于取消命令操作，或者从一个处理过程中退出。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_1</p></td>
<td valign="top">
<p align="left">2</p></td>
<td valign="top">
<p align="left">数字键1，与VK_SHIFT键组合将输入某个特殊字符（取决于键盘布局）。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_2</p></td>
<td valign="top">
<p align="left">3</p></td>
<td valign="top">
<p align="left">数字键2，与VK_SHIFT键组合将输入某个特殊字符（取决于键盘布局）</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_3</p></td>
<td valign="top">
<p align="left">4</p></td>
<td valign="top">
<p align="left">数字键3，与VK_SHIFT键组合将输入某个特殊字符（取决于键盘布局）。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_4</p></td>
<td valign="top">
<p align="left">5</p></td>
<td valign="top">
<p align="left">数字键4，与VK_SHIFT键组合将输入某个特殊字符（取决于键盘布局）</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_5</p></td>
<td valign="top">
<p align="left">6</p></td>
<td valign="top">
<p align="left">数字键5，与VK_SHIFT键组合将输入某个特殊字符（取决于键盘布局）。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_6</p></td>
<td valign="top">
<p align="left">7</p></td>
<td valign="top">
<p align="left">数字键6，与VK_SHIFT键组合将输入某个特殊字符（取决于键盘布局）。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_7</p></td>
<td valign="top">
<p align="left">8</p></td>
<td valign="top">
<p align="left">数字键7，与VK_SHIFT键组合将输入某个特殊字符（取决于键盘布局）。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_8</p></td>
<td valign="top">
<p align="left">9</p></td>
<td valign="top">
<p align="left">数字键8，与VK_SHIFT键组合将输入某个特殊字符（取决于键盘布局）。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_9</p></td>
<td valign="top">
<p align="left">10</p></td>
<td valign="top">
<p align="left">数字键9，与VK_SHIFT键组合将输入某个特殊字符（取决于键盘布局）。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_0</p></td>
<td valign="top">
<p align="left">11</p></td>
<td valign="top">
<p align="left">数字键0，与VK_SHIFT键组合将输入某个特殊字符（取决于键盘布局）。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_MINUS</p></td>
<td valign="top">
<p align="left">12</p></td>
<td valign="top">
<p align="left">减号（-）或下划线（_），（取决于键盘布局）。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_EQUAL</p></td>
<td valign="top">
<p align="left">13</p></td>
<td valign="top">
<p align="left">等号（=）或加号（+），（取决于键盘布局）。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_BACKSPACE</p></td>
<td valign="top">
<p align="left">14</p></td>
<td valign="top">
<p align="left">用于删除光标左边的字符，可通过组合单击和拖拽操作来高亮显示文本，然后单击BACKSPACE键来删除所选文本。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_TAB</p></td>
<td valign="top">
<p align="left">15</p></td>
<td valign="top">
<p align="left">TAB按键可用于在文档中设置TAB位置，移动光标到指定位置，与SHIFT键组合可以跳转到前一个TAB位置。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_Q</p></td>
<td valign="top">
<p align="left">16</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母Q。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_W</p></td>
<td valign="top">
<p align="left">17</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母W。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_E</p></td>
<td valign="top">
<p align="left">18</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母E。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_R</p></td>
<td valign="top">
<p align="left">19</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母R。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_TAB</p></td>
<td valign="top">
<p align="left">20</p></td>
<td valign="top">
<p align="left">用于在文档中设置TAB位置，移动光标到指定位置，与SHIFT键组合可以跳转到前一个TAB位置。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_Y</p></td>
<td valign="top">
<p align="left">21</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母Y。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_U</p></td>
<td valign="top">
<p align="left">22</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母U。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_I</p></td>
<td valign="top">
<p align="left">23</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母I。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_O</p></td>
<td valign="top">
<p align="left">24</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母O。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_P</p></td>
<td valign="top">
<p align="left">25</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母P。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_OBRACKET</p></td>
<td valign="top">
<p align="left">26</p></td>
<td valign="top">
<p align="left">左中括号[或左大括号{，取决于键盘布局。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_CBRACKET</p></td>
<td valign="top">
<p align="left">27</p></td>
<td valign="top">
<p align="left">右中括号[或右大括号{，取决于键盘布局。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_RETURN</p></td>
<td valign="top">
<p align="left">28</p></td>
<td valign="top">
<p align="left">回车键用于把光标设置到下一行的开头。也被用于完成一个命令并告诉计算机执行下一条命令。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_CONTROL</p></td>
<td valign="top">
<p align="left">29</p></td>
<td valign="top">
<p align="left">CTRL键，用于与其它按键组合来执行特定的命令，例如CRL/ALT/DEL执行系统重启命令。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_A</p></td>
<td valign="top">
<p align="left">30</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母A。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_S</p></td>
<td valign="top">
<p align="left">31</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母S。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_D</p></td>
<td valign="top">
<p align="left">32</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母D。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F</p></td>
<td valign="top">
<p align="left">33</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母F。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_G</p></td>
<td valign="top">
<p align="left">34</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母G。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_H</p></td>
<td valign="top">
<p align="left">35</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母H。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_J</p></td>
<td valign="top">
<p align="left">36</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母J。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_K</p></td>
<td valign="top">
<p align="left">37</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母K。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_L</p></td>
<td valign="top">
<p align="left">38</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母L。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_SEMICOLON</p></td>
<td valign="top">
<p align="left">39</p></td>
<td valign="top">
<p align="left">分号（;）或冒号（:），取决于键盘布局。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_SINGLE_QUOTE</p></td>
<td valign="top">
<p align="left">40</p></td>
<td valign="top">
<p align="left">单引号(&lsquo;)或双引号(&ldquo;) ，取决于键盘布局。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_APOSTROPHE</p></td>
<td valign="top">
<p align="left">41</p></td>
<td valign="top">
<p align="left">波浪号（~）或(`)，取决于键盘布局。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_SHIFT</p></td>
<td valign="top">
<p align="left">42</p></td>
<td valign="top">
<p align="left">把小写字母换成大写字母，把数字换成特殊字符。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_PIPE</p></td>
<td valign="top">
<p align="left">43</p></td>
<td valign="top">
<p align="left">斜线（\）或竖线（|），取决于键盘布局。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_Z</p></td>
<td valign="top">
<p align="left">44</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母Z。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_X</p></td>
<td valign="top">
<p align="left">45</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母X。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_C</p></td>
<td valign="top">
<p align="left">46</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母C。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_V</p></td>
<td valign="top">
<p align="left">47</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母V。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_B</p></td>
<td valign="top">
<p align="left">48</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母B。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_N</p></td>
<td valign="top">
<p align="left">49</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母N。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_M</p></td>
<td valign="top">
<p align="left">50</p></td>
<td valign="top">
<p align="left">与SHIFT按键组合或按下CAPS-LOCK表示大写字母M。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_COMMA</p></td>
<td valign="top">
<p align="left">51</p></td>
<td valign="top">
<p align="left">逗号（,）或左尖括号（&lt;），取决于键盘布局。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_DOT</p></td>
<td valign="top">
<p align="left">52</p></td>
<td valign="top">
<p align="left">点号（.）或右尖括号（&gt;），取决于键盘布局。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_SLASH</p></td>
<td valign="top">
<p align="left">53</p></td>
<td valign="top">
<p align="left">反斜杠号（/）或问号（?），取决于键盘布局。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_RSHIFT</p></td>
<td valign="top">
<p align="left">54</p></td>
<td valign="top">
<p align="left">把小写字母换成大写字母，把数字换成特殊字符。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_MULTIPLY</p></td>
<td valign="top">
<p align="left">55</p></td>
<td valign="top">
<p align="left">乘号（*）</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_MENU</p></td>
<td valign="top">
<p align="left">56</p></td>
<td valign="top">
<p align="left">用于与其它键组合输入关键字。也用于组合数字键盘上的按键来输入ASCII码。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_SPACE</p></td>
<td valign="top">
<p align="left">57</p></td>
<td valign="top">
<p align="left">空格键</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_CAPITAL</p></td>
<td valign="top">
<p align="left">58</p></td>
<td valign="top">
<p align="left">CAPS LOCK键</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F1</p></td>
<td valign="top">
<p align="left">59</p></td>
<td valign="top">
<p align="left">在DOS时代，F1通常用于调出帮助菜单，显示帮助信息。在Windows操作系统中也作为显示帮助信息的热键。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F2</p></td>
<td valign="top">
<p align="left">60</p></td>
<td valign="top">
<p align="left">在Windows中可用于重命名、高亮显示文件夹或文件并输入新的名字。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F3</p></td>
<td valign="top">
<p align="left">61</p></td>
<td valign="top">
<p align="left">在Windows中可用于查找文件。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F4</p></td>
<td valign="top">
<p align="left">62</p></td>
<td valign="top">
<p align="left">在IE中可以按F4打开地址栏，组合ALT和F4将关闭窗口。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F5</p></td>
<td valign="top">
<p align="left">63</p></td>
<td valign="top">
<p align="left">刷新按钮。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F6</p></td>
<td valign="top">
<p align="left">64</p></td>
<td valign="top">
<p align="left">把光标移动到程序的其它可停留的位置。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F7</p></td>
<td valign="top">
<p align="left">65</p></td>
<td valign="top">
<p align="left">在Windows中F7没有任何功能，在某些程序中可能会用上，可以打开程序的帮助文档查看F7的功能。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F8</p></td>
<td valign="top">
<p align="left">66</p></td>
<td valign="top">
<p align="left">在计算机启动过程中可以使用F8来进入安全模式。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F9</p></td>
<td valign="top">
<p align="left">67</p></td>
<td valign="top">
<p align="left">在Windows中F9没有任何功能，在某些程序中可能会用上，可以打开程序的帮助文档查看F7的功能。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F10</p></td>
<td valign="top">
<p align="left">68</p></td>
<td valign="top">
<p align="left">在很多程序中F10被用于激活菜单栏，可以使用F10来定位到第一个菜单选择项，然后用方向键来移动并选择菜单。组合SHIFT键与F10将打开快捷菜单，相当于右键弹出菜单。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_NUMLOCK</p></td>
<td valign="top">
<p align="left">69</p></td>
<td valign="top">
<p align="left">允许数字键盘中的数字按键可用，而不是光标控制键可用。按下一次NUMLOCK键，则激活NUMLOCK，并且键盘板上的灯会亮；再按一次NUMLOCK键则回到正常模式。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_SCROLL</p></td>
<td valign="top">
<p align="left">70</p></td>
<td valign="top">
<p align="left">在某些程序中能控制光标控制键。很多应用程序忽略这个设置。按下一次ScrollLock键将激活ScrollLock模式，并且键盘板上相应的灯会亮；再按一次ScrollLock键则回到正常模式。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_HOME</p></td>
<td valign="top">
<p align="left">71</p></td>
<td valign="top">
<p align="left">把光标移动到当前行的开头。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_NUMPAD7</p></td>
<td valign="top">
<p align="left">71</p></td>
<td valign="top">
<p align="left">只有VK_NUMLOCK被按下时才生效。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_UP</p></td>
<td valign="top">
<p align="left">72</p></td>
<td valign="top">
<p align="left">向上键</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_NUMPAD8</p></td>
<td valign="top">
<p align="left">72</p></td>
<td valign="top">
<p align="left">只有VK_NUMLOCK被按下时才生效。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_PRIOR</p></td>
<td valign="top">
<p align="left">73</p></td>
<td valign="top">
<p align="left">把光标移动到上一页。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_NUMPAD9</p></td>
<td valign="top">
<p align="left">73</p></td>
<td valign="top">
<p align="left">只有VK_NUMLOCK被按下时才生效。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_SUBTRACT</p></td>
<td valign="top">
<p align="left">74</p></td>
<td valign="top">
<p align="left">减号键。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_LEFT</p></td>
<td valign="top">
<p align="left">75</p></td>
<td valign="top">
<p align="left">向左键。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_NUMPAD4</p></td>
<td valign="top">
<p align="left">75</p></td>
<td valign="top">
<p align="left">只有VK_NUMLOCK被按下时才生效。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_CLEAR</p></td>
<td valign="top">
<p align="left">76</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_NUMPAD5</p></td>
<td valign="top">
<p align="left">76</p></td>
<td valign="top">
<p align="left">只有VK_NUMLOCK被按下时才生效。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_RIGHT</p></td>
<td valign="top">
<p align="left">77</p></td>
<td valign="top">
<p align="left">向右键。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_NUMPAD6</p></td>
<td valign="top">
<p align="left">77</p></td>
<td valign="top">
<p align="left">只有VK_NUMLOCK被按下时才生效。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_ADD</p></td>
<td valign="top">
<p align="left">78</p></td>
<td valign="top">
<p align="left">加号键。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_END</p></td>
<td valign="top">
<p align="left">79</p></td>
<td valign="top">
<p align="left">移动光标到当前行的最后。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_NUMPAD1</p></td>
<td valign="top">
<p align="left">79</p></td>
<td valign="top">
<p align="left">只有VK_NUMLOCK被按下时才生效。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_DOWN</p></td>
<td valign="top">
<p align="left">80</p></td>
<td valign="top">
<p align="left">向下键。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_NUMPAD2</p></td>
<td valign="top">
<p align="left">80</p></td>
<td valign="top">
<p align="left">只有VK_NUMLOCK被按下时才生效。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_NEXT</p></td>
<td valign="top">
<p align="left">81</p></td>
<td valign="top">
<p align="left">移动光标到下一页。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_NUMPAD3</p></td>
<td valign="top">
<p align="left">81</p></td>
<td valign="top">
<p align="left">只有VK_NUMLOCK被按下时才生效。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_INSERT</p></td>
<td valign="top">
<p align="left">82</p></td>
<td valign="top">
<p align="left">在一行文本中插入字符，每插入一个字符，剩下的文字向右移动一个光标位置。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_NUMPAD0</p></td>
<td valign="top">
<p align="left">82</p></td>
<td valign="top">
<p align="left">只有VK_NUMLOCK被按下时才生效。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_DELETE</p></td>
<td valign="top">
<p align="left">83</p></td>
<td valign="top">
<p align="left">在一行文本中删除一个字符，每删除一个字符，剩下的文字向左移动一个光标位置。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_SNAPSHOT</p></td>
<td valign="top">
<p align="left">84</p></td>
<td valign="top">
<p align="left">打印屏幕。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_BACKSLASH</p></td>
<td valign="top">
<p align="left">86</p></td>
<td valign="top">
<p align="left">斜杠号（\）。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F11</p></td>
<td valign="top">
<p align="left">87</p></td>
<td valign="top">
<p align="left">在IE中按下F11会把窗口打开到全屏状态，并且把工具栏隐藏以便查看更多的信息，再次按下F11则回到正常状态。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F12</p></td>
<td valign="top">
<p align="left">88</p></td>
<td valign="top">
<p align="left">在Windows中F12没有任何功能，在某些程序中可能会用上，可以打开程序的帮助文档查看F7的功能。</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_NUMPAD5</p></td>
<td valign="top">
<p align="left">89</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_ZOOM</p></td>
<td valign="top">
<p align="left">98</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_HELP</p></td>
<td valign="top">
<p align="left">99</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F13</p></td>
<td valign="top">
<p align="left">100</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F14</p></td>
<td valign="top">
<p align="left">101</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F15</p></td>
<td valign="top">
<p align="left">102</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F16</p></td>
<td valign="top">
<p align="left">103</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F17</p></td>
<td valign="top">
<p align="left">104</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F18</p></td>
<td valign="top">
<p align="left">105</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F19</p></td>
<td valign="top">
<p align="left">106</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F20</p></td>
<td valign="top">
<p align="left">107</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F21</p></td>
<td valign="top">
<p align="left">108</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F22</p></td>
<td valign="top">
<p align="left">109</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr>
<tr>
<td valign="top">
<p align="left">VK_F23</p></td>
<td valign="top">
<p align="left">110</p></td>
<td valign="top">
<p align="left">&nbsp;</p></td></tr></tbody></table>]]></description>
		</item>
		    
		
		<item>
			<title>揭秘QTP的DeviceReplay对象 四</title>
			<link>http://678ba.blog.sohu.com/90805901.html</link>
			<comments>http://678ba.blog.sohu.com/90805901.html#comment</comments>
			<dc:creator>just test it!</dc:creator>
			<pubDate>Sun, 22 Jun 2008 17:42:56 +0800</pubDate>
			<category>自动化测试工具</category>
			<guid>http://678ba.blog.sohu.com/90805901.html</guid>
			<description><![CDATA[<p><strong><font size="3">描述</font></strong></p>
<p><font size="3">在指定的屏幕位置中执行鼠标左键或右键的双击事件。</font></p>
<p><strong><font size="3">语法</font></strong></p>
<p><font size="3"><font face="Times New Roman">object.MouseDblClick( x, y, Button )</font></font></p>
<p><strong><font size="3">参数</font></strong></p>
<p align="left">object ：<font size="3"><font face="Times New Roman"> Mercury.DeviceReplay</font>对象。</font></p>
<p><font size="3"><font face="Times New Roman">x </font>：屏幕坐标<font face="Times New Roman">X</font>轴的值。</font></p>
<p><font size="3"><font face="Times New Roman">y </font>：屏幕坐标<font face="Times New Roman">Y</font>轴的值。</font></p>
<p><font size="3"><font face="Times New Roman">Button </font>：可能的值包括</font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;LEFT_MOUSE_BUTTON = 0</font></font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MIDDLE_MOUSE_BUTTON = 1</font></font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RIGHT_MOUSE_BUTTON = 2</font></font></p>
<p><strong><font size="3">返回值</font></strong></p>
<p><font size="3">无</font></p>
<h3><font size="5"><font face="Times New Roman">MouseDown</font>方法</font></h3>
<p><strong><font size="3">描述</font></strong></p>
<p><font size="3">在屏幕指定位置按下鼠标左键或右键，并保持按下状态。</font></p>
<p><strong><font size="3">语法</font></strong></p>
<p><font size="3"><font face="Times New Roman">object.MouseDown( x, y, Button )</font></font></p>
<p><strong><font size="3">参数</font></strong></p>
<p align="left">object ： <font size="3"><font face="Times New Roman">Mercury.DeviceReplay</font>对象。</font></p>
<p><font size="3"><font face="Times New Roman">x </font>：屏幕坐标<font face="Times New Roman">X</font>轴的值。</font></p>
<p><font size="3"><font face="Times New Roman">y </font>：屏幕坐标<font face="Times New Roman">Y</font>轴的值。</font></p>
<p><font size="3"><font face="Times New Roman">Button </font>：可能的值包括</font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LEFT_MOUSE_BUTTON = 0</font></font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MIDDLE_MOUSE_BUTTON = 1</font></font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RIGHT_MOUSE_BUTTON = 2</font></font></p>
<p><strong><font size="3">返回值</font></strong></p>
<p><font size="3">无</font></p>
<p><strong><font size="3">提示</font></strong></p>
<p><font size="3">应该在<font face="Times New Roman">MouseDown</font>后使用对应的<font face="Times New Roman">MouseUp</font>方法。</font></p>
<h3><font size="5"><font face="Times New Roman">MouseUp</font>方法</font></h3>
<p><strong><font size="3">描述</font></strong></p>
<p><font size="3">用于释放之前执行的<font face="Times New Roman">MouseDown</font>方法所按下的鼠标按键。</font></p>
<p><strong><font size="3">语法</font></strong></p>
<p><font size="3"><font face="Times New Roman">object.MouseDown( x, y, Button )</font></font></p>
<p><strong><font size="3">参数</font></strong></p>
<p align="left">object ：<font size="3"><font face="Times New Roman"> Mercury.DeviceReplay</font>对象。</font></p>
<p><font size="3"><font face="Times New Roman">x </font>：屏幕坐标<font face="Times New Roman">X</font>轴的值。</font></p>
<p><font size="3"><font face="Times New Roman">y </font>：屏幕坐标<font face="Times New Roman">Y</font>轴的值。</font></p>
<p><font size="3"><font face="Times New Roman">Button </font>：可能的值包括</font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LEFT_MOUSE_BUTTON = 0</font></font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MIDDLE_MOUSE_BUTTON = 1</font></font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RIGHT_MOUSE_BUTTON = 2</font></font></p>
<p><strong><font size="3">返回值</font></strong></p>
<p><font size="3">无</font></p>
<p><strong><font size="3">提示</font></strong></p>
<p><font size="3">应该让<font face="Times New Roman">MouseUp</font>和<font face="Times New Roman">MouseDowun</font>方法配对使用。</font></p>
<h3><font size="5"><font face="Times New Roman">MouseMove</font>方法</font></h3>
<p><strong><font size="3">描述</font></strong></p>
<p><font size="3">用于释放之前执行的<font face="Times New Roman">MouseDown</font>方法所按下的鼠标按键。（<em>译者注：这里怀疑是作者笔误，应该是：用于模拟鼠标移动。</em>）</font></p>
<p><strong><font size="3">语法</font></strong></p>
<p><font size="3"><font face="Times New Roman">object.MouseDown( x, y ) </font>（<em>译者注：这里怀疑是作者笔误，应该是：</em><font face="Times New Roman">object.MouseMove( x, y )</font><em>。</em>）</font></p>
<p><strong><font size="3">参数</font></strong></p>
<p align="left">object ： <font size="3"><font face="Times New Roman">Mercury.DeviceReplay</font>对象。</font></p>
<p><font size="3"><font face="Times New Roman">x </font>：屏幕坐标<font face="Times New Roman">X</font>轴的值。</font></p>
<p><font size="3"><font face="Times New Roman">y </font>：屏幕坐标<font face="Times New Roman">Y</font>轴的值。</font></p>
<p><strong><font size="3">返回值</font></strong></p>
<p><font size="3">无</font></p>
<p><strong><font size="3">提示</font></strong></p>
<p><font size="3">调试脚本查看在运行时获取到的坐标位置。</font></p>
<p><font size="3">在执行键盘操作之前移动鼠标到指定的位置并设置焦点。</font></p>
<h3><font size="5"><font face="Times New Roman">SetSynchronizationTimeout</font>方法</font></h3>
<p><strong><font size="3">描述</font></strong></p>
<p><font size="3">设置一个新的同步超时的时间值。</font></p>
<p><strong><font size="3">语法</font></strong></p>
<p><font size="3"><font face="Times New Roman">object.MouseDown( x, y ) </font>（<em>译者注：这里怀疑是作者笔误，应该是：</em><em><font face="Times New Roman">object. SetSynchronizationTimeout</font></em><em>（<font face="Times New Roman">nSyncTimeout , is_sec</font></em><em>）。</em>）</font></p>
<p><strong><font size="3">参数</font></strong></p>
<p align="left">object ：<font size="3"><font face="Times New Roman"> Mercury.DeviceReplay</font>对象。</font></p>
<p align="left">nSyncTimeout ： <font size="3">同步超时的时间值。</font></p>
<p align="left">is_sec ：<font size="3"><font face="Times New Roman"> </font>指定设置的时间值是否以秒为单位。</font></p>
<p><strong><font size="3">返回值</font></strong></p>
<p><font size="3">无</font></p>
<p><strong><font size="3">提示</font></strong></p>
<p><font size="3">建议不要修改这个值。</font></p>]]></description>
		</item>
		    
		
		<item>
			<title>揭秘QTP的DeviceReplay对象 三</title>
			<link>http://678ba.blog.sohu.com/90805861.html</link>
			<comments>http://678ba.blog.sohu.com/90805861.html#comment</comments>
			<dc:creator>just test it!</dc:creator>
			<pubDate>Sun, 22 Jun 2008 17:42:14 +0800</pubDate>
			<category>自动化测试工具</category>
			<guid>http://678ba.blog.sohu.com/90805861.html</guid>
			<description><![CDATA[<p><strong><font size="3">描述</font></strong></p>
<p><font size="3">用于执行从一点拖动到另外一点的操作。</font></p>
<p><strong><font size="3">语法</font></strong></p>
<p><font size="3"><font face="Times New Roman">object.DragAndDrop( dragX, dragY, dropX, dropY, Button )</font></font></p>
<p><strong><font size="3">参数</font></strong></p>
<p align="left">object ：<font size="3"><font face="Times New Roman"> Mercury.DeviceReplay</font>对象。</font></p>
<p><font size="3"><font face="Times New Roman">dragX </font>：起点坐标的<font face="Times New Roman">X</font>轴的值。</font></p>
<p><font size="3"><font face="Times New Roman">dragY </font>：起点坐标的<font face="Times New Roman">Y</font>轴的值。</font></p>
<p><font size="3"><font face="Times New Roman">dropX </font>：终点坐标的<font face="Times New Roman">X</font>轴的值。</font></p>
<p><font size="3"><font face="Times New Roman">dropY </font>：终点坐标的<font face="Times New Roman">Y</font>轴的值。</font></p>
<p><font size="3"><font face="Times New Roman">Button </font>：可能的值包括</font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LEFT_MOUSE_BUTTON = 0</font></font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MIDDLE_MOUSE_BUTTON = 1</font></font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RIGHT_MOUSE_BUTTON = 2</font></font></p>
<p><strong><font size="3">返回值</font></strong></p>
<p><font size="3">无。</font></p>
<p><strong><font size="3">提示</font></strong></p>
<p><font size="3">可以组合使用<font face="Times New Roman">MouseDown</font>、<font face="Times New Roman">MouseMove</font>和<font face="Times New Roman">MouseUp</font>方法。</font></p>
<h3><font size="5"><font face="Times New Roman">MouseClick</font>方法</font></h3>
<p><strong><font size="3">描述</font></strong></p>
<p><font size="3">在指定的屏幕位置执行鼠标左键或右键的单击操作。</font></p>
<p><strong><font size="3">语法</font></strong></p>
<p><font size="3"><font face="Times New Roman">object.MouseClick( x, y, Button )</font></font></p>
<p><strong><font size="3">参数</font></strong></p>
<p align="left">object ：<font size="3"><font face="Times New Roman"> Mercury.DeviceReplay</font>对象。</font></p>
<p><font size="3"><font face="Times New Roman">x </font>：屏幕坐标<font face="Times New Roman">X</font>轴的值。</font></p>
<p><font size="3"><font face="Times New Roman">y </font>：屏幕坐标<font face="Times New Roman">Y</font>轴的值。</font></p>
<p><font size="3"><font face="Times New Roman">Button </font>：可能的值包括</font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LEFT_MOUSE_BUTTON = 0</font></font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MIDDLE_MOUSE_BUTTON = 1</font></font></p>
<p><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RIGHT_MOUSE_BUTTON = 2</font></font></p>
<p><strong><font size="3">返回值</font></strong></p>
<p><font size="3">无。</font></p>
<p><strong><font size="3">例子</font></strong></p>
<p><font size="3">下面的例子在执行之前需要做一定的准备工作。例子的目的是在<font face="Times New Roman">www.advancedqtp.com</font>网站上执行<font face="Times New Roman">DragAndDrop</font>操作，如果在录制时执行拖拽操作，则不会被录制下来。因此这个例子是支持某些操作的例子。这个例子在<font face="Times New Roman">IE</font>环境下测试通过。</font></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p><font size="3">打开<font face="Times New Roman">IE</font>浏览器并导航到<font face="Times New Roman"><a href="http://www.advancedqtp.com/">www.advancedqtp.com</a></font>。这个例子会交换<font face="Times New Roman">dbxhandle</font>项，这些对象可以被拖拽以便满足个性化显示的要求。</font></p>
<p><font size="3"><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/Testing_is_believing/QTP_DeviceReplay_1.JPG" /></font></p>
<p align="center"><font size="3"></font></p>
<p><font size="3">打开<font face="Times New Roman">QTP</font>（加载<font face="Times New Roman">Web</font>插件），新建一个测试，打开对象库（<font face="Times New Roman">object repository</font>）并添加浏览器中的页面对象到本地对象库（<font face="Times New Roman">local object repository</font>）中。</font></p>
<p><font size="3"><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/Testing_is_believing/QTP_DeviceReplay_2.JPG" /></font></p>
<p align="center"><font size="3"></font></p>
<p><font size="3">重命名对象<font face="Times New Roman">&hellip;</font></font></p>
<p><font size="3"><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/Testing_is_believing/QTP_DeviceReplay_3.JPG" /></font></p>
<p align="center"><font size="3"><font face="Times New Roman"></font></font></p>
<p><font face="Times New Roman" size="3">Option Explicit</font></p>
<p><font face="Times New Roman" size="3">Const LEFT_MOUSE_BUTTON = 0</font></p>
<p><font face="Times New Roman" size="3">Dim oWebElemDesc1, oWebElemDesc2</font></p>
<p><font face="Times New Roman" size="3">Dim oWebElem1, oWebElem2</font></p>
<p><font face="Times New Roman" size="3">Dim devRep</font></p>
<p><font face="Times New Roman" size="3">Dim nX1, nX2, nY1, nY2, nH1, nH2, hwnd</font></p>
<p><font face="Times New Roman" size="3">Dim point1, point2</font></p>
<p><font face="Times New Roman" size="3">' ** This class holds a point coordinate</font></p>
<p><font face="Times New Roman" size="3">Class Point</font></p>
<p><font face="Times New Roman" size="3">Private mX, mY</font></p>
<p><font face="Times New Roman" size="3">Property Let X( ByVal value )</font></p>
<p><font face="Times New Roman" size="3">mX = value</font></p>
<p><font face="Times New Roman" size="3">End Property</font></p>
<p><font face="Times New Roman" size="3">Property Get X()</font></p>
<p><font face="Times New Roman" size="3">X = mX</font></p>
<p><font face="Times New Roman" size="3">End Property</font></p>
<p><font face="Times New Roman" size="3">Property Let Y( ByVal value )</font></p>
<p><font face="Times New Roman" size="3">mY = value</font></p>
<p><font face="Times New Roman" size="3">End Property</font></p>
<p><font face="Times New Roman" size="3">Property Get Y()</font></p>
<p><font face="Times New Roman" size="3">Y = mY</font></p>
<p><font face="Times New Roman" size="3">End Property</font></p>
<p><font face="Times New Roman" size="3">End Class</font></p>
<p><font face="Times New Roman" size="3">' ** Retrieving the handle of the browser</font></p>
<p><font face="Times New Roman" size="3">hwnd = Browser(&quot;QTP&quot;).GetROProperty( &quot;hwnd&quot; )</font></p>
<p><font face="Times New Roman" size="3">Window( &quot;hwnd:=&quot; &amp; hwnd ).Activate</font></p>
<p><font face="Times New Roman" size="3">' ** Create a description for 'Program Professionally'</font></p>
<p><font face="Times New Roman" size="3">Set oWebElemDesc1 = Description.Create()</font></p>
<p><font face="Times New Roman" size="3">oWebElemDesc1( &quot;micclass&quot; ).Value = &quot;WebElement&quot;</font></p>
<p><font face="Times New Roman" size="3">oWebElemDesc1( &quot;html tag&quot; ).Value = &quot;H3&quot;</font></p>
<p><font face="Times New Roman" size="3">oWebElemDesc1( &quot;innertext&quot; ).Value = &quot;Program Professionally&quot;</font></p>
<p><font face="Times New Roman" size="3">oWebElemDesc1( &quot;class&quot; ).Value = &quot;dbx-handle dbx-handle-cursor&quot;</font></p>
<p><font face="Times New Roman" size="3">' ** Create a description for 'Links'</font></p>
<p><font face="Times New Roman" size="3">Set oWebElementDesc2 = Description.Create()</font></p>
<p><font face="Times New Roman" size="3">oWebElemDesc2( &quot;micclass&quot; ).Value = &quot;WebElement&quot;</font></p>
<p><font face="Times New Roman" size="3">oWebElemDesc2( &quot;html tag&quot; ).Value = &quot;H3&quot;</font></p>
<p><font face="Times New Roman" size="3">oWebElemDesc2( &quot;innertext&quot; ).Value = &quot;Links&quot;</font></p>
<p><font face="Times New Roman" size="3">oWebElemDesc2( &quot;class&quot; ).Value = &quot;dbx-handle dbx-handle-cursor&quot;</font></p>
<p><font face="Times New Roman" size="3">' ** Searching for the elements</font></p>
<p><font face="Times New Roman" size="3">With Browser( &quot;QTP&quot; ).Page( &quot;QTP&quot; )</font></p>
<p><font face="Times New Roman" size="3">If .ChildObjects( oWebElemDesc1 ).Count = 1 Then</font></p>
<p><font face="Times New Roman" size="3">Set oWebElem1 = .WebElement( oWebElemDesc1 )</font></p>
<p><font face="Times New Roman" size="3">If .ChildObjects( oWebElemDesc2 ).Count = 1 Then</font></p>
<p><font face="Times New Roman" size="3">Set oWebElem2 = .WebElement( oWebElemDesc2 )</font></p>
<p><font face="Times New Roman" size="3">Else</font></p>
<p><font face="Times New Roman" size="3">Print &quot;Web Element 'Program Professionally' was not found.&quot;</font></p>
<p><font face="Times New Roman" size="3">ExitTest( micFail )</font></p>
<p><font face="Times New Roman" size="3">End If</font></p>
<p><font face="Times New Roman" size="3">Else</font></p>
<p><font face="Times New Roman" size="3">Print &quot;Web Element 'Program Professionally' was not found.&quot;</font></p>
<p><font face="Times New Roman" size="3">ExitTest( micFail )</font></p>
<p><font face="Times New Roman" size="3">End If</font></p>
<p><font face="Times New Roman" size="3">End With</font></p>
<p><font face="Times New Roman" size="3">' ** Retrieve elements dimensions</font></p>
<p><font face="Times New Roman" size="3">nX1 = oWebElem1.GetROProperty( &quot;abs_x&quot; )</font></p>
<p><font face="Times New Roman" size="3">nH1 = oWebElem1.GetROProperty( &quot;height&quot; )</font></p>
<p><font face="Times New Roman" size="3">nY1 = oWebElem1.GetROProperty( &quot;abs_y&quot; )</font></p>
<p><font face="Times New Roman" size="3">nX2 = oWebElem2.GetROProperty( &quot;abs_x&quot; )</font></p>
<p><font face="Times New Roman" size="3">nH2 = oWebElem2.GetROProperty( &quot;height&quot; )</font></p>
<p><font face="Times New Roman" size="3">nY2 = oWebElem2.GetROProperty( &quot;abs_y&quot; )</font></p>
<p><font face="Times New Roman" size="3">Set point1 = New Point</font></p>
<p><font face="Times New Roman" size="3">point1.X = nX1 + 10</font></p>
<p><font face="Times New Roman" size="3">point1.Y = nY1 + nH1 - 10</font></p>
<p><font face="Times New Roman" size="3">Set point2 = New Point</font></p>
<p><font face="Times New Roman" size="3">' ** Dragging up</font></p>
<p><font face="Times New Roman" size="3">If nY1 &gt; nY2 Then</font></p>
<p><font face="Times New Roman" size="3">point2.X = nX2 + 20</font></p>
<p><font face="Times New Roman" size="3">point2.Y = nY2 + nH2 - 20</font></p>
<p><font face="Times New Roman" size="3">Else</font></p>
<p><font face="Times New Roman" size="3">' ** Dragging down</font></p>
<p><font face="Times New Roman" size="3">point2.X = nX2 + 20</font></p>
<p><font face="Times New Roman" size="3">point2.Y = nY2 + nH2 + 20</font></p>
<p><font face="Times New Roman" size="3">End If</font></p>
<p><font face="Times New Roman" size="3">Set devRep = CreateObject( &quot;Mercury.DeviceReplay&quot; )</font></p>
<p><font face="Times New Roman" size="3">devRep.DragAndDrop point1.X, point1.Y, _</font></p>
<p><font face="Times New Roman" size="3">point2.X, point2.Y, LEFT_MOUSE_BUTTON</font></p>]]></description>
		</item>
		    
		
		<item>
			<title>揭秘QTP的DeviceReplay对象 二</title>
			<link>http://678ba.blog.sohu.com/90805821.html</link>
			<comments>http://678ba.blog.sohu.com/90805821.html#comment</comments>
			<dc:creator>just test it!</dc:creator>
			<pubDate>Sun, 22 Jun 2008 17:41:29 +0800</pubDate>
			<category>自动化测试工具</category>
			<guid>http://678ba.blog.sohu.com/90805821.html</guid>
			<description><![CDATA[<p><strong><font size="3">描述</font></strong></p>
<p><font size="3">模拟通过键盘多次按下一个按键并立即释放。</font></p>
<p><strong><font size="3">语法</font></strong></p>
<p><font size="3"><font face="Times New Roman">object.PressNKey( key, N )</font></font></p>
<p><strong><font size="3">参数</font></strong></p>
<p align="left">object ： <font size="3"><font face="Times New Roman">Mercury.DeviceReplay</font>对象。</font></p>
<p><font face="Times New Roman" size="3">key</font> ： <font size="3">按键的数值码。可查阅后面的&ldquo;<font face="Times New Roman">Key Codes </font>参考&rdquo;。</font></p>
<p><font size="3"><font face="Times New Roman">N</font>：重复的次数。</font></p>
<p><strong><font size="3">返回值</font></strong></p>
<p><font size="3">无。</font></p>
<p><strong><font size="3">例子</font></strong></p>
<p><font size="3"><u>例<font face="Times New Roman">1 &ndash; </font></u><u>美国的州</u></font></p>
<p><font face="Times New Roman" size="3">Option Explicit</font></p>
<p><font face="Times New Roman" size="3">Const VK_RETURN = 28 : Const VK_F = 33 : Const VK_O = 24</font></p>
<p><font face="Times New Roman" size="3">Const VK_TAB = 15 : Const VK_F5 = 63</font></p>
<p><font face="Times New Roman" size="3">Const VK_CAPITAL = 58 : Const VK_NUMLOCK = 69</font></p>
<p><font face="Times New Roman" size="3">Const VK_SUBTRACT = 74 : Const VK_MULTIPLY = 55</font></p>
<p><font face="Times New Roman" size="3">Const VK_MENU = 56</font></p>
<p><font face="Times New Roman" size="3">Dim deviceReplay</font></p>
<p><font face="Times New Roman" size="3">Private Sub SetupKeyboard()</font></p>
<p><font face="Times New Roman" size="3">Const CLASS_NAME = &quot;Microsoft.VisualBasic.Devices.Keyboard&quot;</font></p>
<p><font face="Times New Roman" size="3">Const ASSEMBLY = &quot;Microsoft.VisualBasic&quot;</font></p>
<p><font face="Times New Roman" size="3">Dim Keyboard</font></p>
<p><font face="Times New Roman" size="3">Set Keyboard = DotNetFactory.CreateInstance( CLASS_NAME, ASSEMBLY )</font></p>
<p><font face="Times New Roman" size="3">If CBool( Keyboard.CapsLock ) Then</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_CAPITAL</font></p>
<p><font face="Times New Roman" size="3">End If</font></p>
<p><font face="Times New Roman" size="3">If CBool( Keyboard.NumLock ) = False Then</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_NUMLOCK</font></p>
<p><font face="Times New Roman" size="3">End If</font></p>
<p><font face="Times New Roman" size="3">Set Keyboard = Nothing</font></p>
<p><font face="Times New Roman" size="3">End Sub</font></p>
<p><font face="Times New Roman" size="3">Private Sub SetupNotepad()</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_MENU</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_O</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_F</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;Courier New&quot;</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_TAB</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_TAB</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;14&quot;</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_RETURN</font></p>
<p><font face="Times New Roman" size="3">Wait 1</font></p>
<p><font face="Times New Roman" size="3">End Sub</font></p>
<p><font face="Times New Roman" size="3">Private Sub PrintRow( ByVal state, ByVal usps, byVal capital )</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString state</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_TAB</font></p>
<p><font face="Times New Roman" size="3">If Len( state ) &lt; 8 Then</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_TAB</font></p>
<p><font face="Times New Roman" size="3">End If</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString usps</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_TAB</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString capital</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_RETURN</font></p>
<p><font face="Times New Roman" size="3">End Sub</font></p>
<p><font face="Times New Roman" size="3">Set deviceReplay = CreateObject( &quot;Mercury.DeviceReplay&quot; )</font></p>
<p><font face="Times New Roman" size="3">SystemUtil.Run &quot;notepad.exe&quot;, &quot;&quot;, &quot;&quot;, &quot;open&quot;, 3</font></p>
<p><font face="Times New Roman" size="3">Window( &quot;nativeclass:=Notepad&quot;, &quot;index:=0&quot; ).Activate micLeftBtn</font></p>
<p><font face="Times New Roman" size="3">' ** Setup Notepad - Font courier new, size 14,</font></p>
<p><font face="Times New Roman" size="3">' ** NUM-LOCK pressed and CAPS-LOCK unpressed</font></p>
<p><font face="Times New Roman" size="3">Call SetupKeyboard()</font></p>
<p><font face="Times New Roman" size="3">Call SetupNotepad()</font></p>
<p><font face="Times New Roman" size="3">' ** inserting date</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_F5</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_RETURN</font></p>
<p><font face="Times New Roman" size="3">' ** Inserting Title</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressNKeys VK_TAB, 3</font></p>
<p><font size="3"><font face="Times New Roman">deviceReplay.SendString &quot;United States of America&quot;</font></font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_RETURN</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressNKeys VK_TAB, 3</font></p>
<p><font size="3"><font face="Times New Roman">deviceReplay.PressNKeys VK_MULTIPLY, Len( &quot;United States of America&quot; )</font></font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressNKeys VK_RETURN, 2</font></p>
<p><font face="Times New Roman" size="3">' ** Table Headers</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;State&quot;</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_TAB</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_TAB</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;USPS&quot;</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_TAB</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;Capital&quot;</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_RETURN</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressNKeys VK_SUBTRACT, 31</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_RETURN</font></p>
<p><font face="Times New Roman" size="3">' ** Print Data</font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Alabama&quot;, &quot;AL&quot;, &quot;Montgomery&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Alaska&quot;, &quot;AK&quot;, &quot;Juneau&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Arizona&quot;, &quot;AZ&quot;, &quot;Phoenix&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Arkansas&quot;, &quot;AR&quot;, &quot;Little Rock&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;California&quot;, &quot;CA&quot;, &quot;Sacramento&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Colorado&quot;, &quot;CO&quot;, &quot;Denver&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Connecticut&quot;, &quot;CT&quot;, &quot;Hartford&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Delaware&quot;, &quot;DE&quot;, &quot;Dover&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Florida&quot;, &quot;FL&quot;, &quot;Tallahassee&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Georgia&quot;, &quot;GA&quot;, &quot;Atlanta&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Hawaii&quot;, &quot;HA&quot;, &quot;Honolulu&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Idaho&quot;, &quot;ID&quot;, &quot;Boise&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Illinois&quot;, &quot;IL&quot;, &quot;Springfield&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Indiana&quot;, &quot;IN&quot;, &quot;Indianapolis&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Iowa&quot;, &quot;IA&quot;, &quot;Des Moines&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Kansas&quot;, &quot;KS&quot;, &quot;Topeka&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Kentucky&quot;, &quot;KY&quot;, &quot;Frankfort&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Louisiana&quot;, &quot;LA&quot;, &quot;Baton Rouge&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Maine&quot;, &quot;ME&quot;, &quot;Augusta&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Maryland&quot;, &quot;MD&quot;, &quot;Annapolis&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Massachusetts&quot;, &quot;MA&quot;, &quot;Boston&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Michigan&quot;, &quot;MI&quot;, &quot;Lansing&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Minnesota&quot;, &quot;MN&quot;, &quot;Saint Paul&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Mississippi&quot;, &quot;MS&quot;, &quot;Jackson&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Missouri&quot;, &quot;MO&quot;, &quot;Jefferson City&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Montana&quot;, &quot;MT&quot;, &quot;Helena&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Nebraska&quot;, &quot;NE&quot;, &quot;Lincoln&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Nevada&quot;, &quot;NV&quot;, &quot;Carson City&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;New Hampshire&quot;, &quot;NH&quot;, &quot;Concord&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;New Jersey&quot;, &quot;NJ&quot;, &quot;Trenton&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;New Mexico&quot;, &quot;NM&quot;, &quot;Santa Fe&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;New York&quot;, &quot;NY&quot;, &quot;Albany&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;North Carolina&quot;, &quot;NC&quot;, &quot;Raleigh&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;North Dakota&quot;, &quot;ND&quot;, &quot;Bismarck&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Ohio&quot;, &quot;OH&quot;, &quot;Columbus&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Oklahoma&quot;, &quot;OK&quot;, &quot;Oklahoma City&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Oregon&quot;, &quot;OR&quot;, &quot;Salem&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Pennsylvania&quot;, &quot;PA&quot;, &quot;Harrisburg&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Rhode Island&quot;, &quot;RI&quot;, &quot;Providence&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;South Carolina&quot;, &quot;SC&quot;, &quot;Columbia&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;South Dakota&quot;, &quot;SD&quot;, &quot;Pierre&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Tennessee&quot;, &quot;TN&quot;, &quot;Nashville&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Texas&quot;, &quot;TX&quot;, &quot;Austin&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Utah&quot;, &quot;UT&quot;, &quot;Salt Lake City&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Vermont&quot;, &quot;VT&quot;, &quot;Montpelier&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Virginia&quot;, &quot;VA&quot;, &quot;Richmond&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Washington&quot;, &quot;WA&quot;, &quot;Olympia&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;West Virginia&quot;, &quot;WV&quot;, &quot;Charleston&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Wisconsin&quot;, &quot;WI&quot;, &quot;Madison&quot; )</font></font></p>
<p><font size="3"><font face="Times New Roman">Call PrintRow( &quot;Wyoming&quot;, &quot;WY&quot;, &quot;Cheyenne&quot; )</font></font></p>
<p><font face="Times New Roman" size="3">Set deviceReplay = Nothing</font></p>
<p><u><font face="Times New Roman" size="3">&nbsp;</font></u></p>
<p><font size="3"><u>例<font face="Times New Roman">2 &ndash; </font></u><u>拉丁文和字符</u></font></p>
<p><font face="Times New Roman" size="3">Option Explicit</font></p>
<p><font face="Times New Roman" size="3">Const VK_NUMPAD0 = 82</font></p>
<p><font face="Times New Roman" size="3">Const VK_NUMPAD1 = 79</font></p>
<p><font face="Times New Roman" size="3">Const VK_NUMPAD2 = 80</font></p>
<p><font face="Times New Roman" size="3">Const VK_NUMPAD3 = 81</font></p>
<p><font face="Times New Roman" size="3">Const VK_NUMPAD4 = 75</font></p>
<p><font face="Times New Roman" size="3">Const VK_NUMPAD5 = 76</font></p>
<p><font face="Times New Roman" size="3">Const VK_NUMPAD6 = 77</font></p>
<p><font face="Times New Roman" size="3">Const VK_NUMPAD7 = 71</font></p>
<p><font face="Times New Roman" size="3">Const VK_NUMPAD8 = 72</font></p>
<p><font face="Times New Roman" size="3">Const VK_NUMPAD9 = 73</font></p>
<p><font face="Times New Roman" size="3">Const VK_MENU = 56</font></p>
<p><font face="Times New Roman" size="3">Const VK_SHIFT = 42</font></p>
<p><font face="Times New Roman" size="3">Const VK_RETURN = 28</font></p>
<p><font face="Times New Roman" size="3">Const VK_F = 33</font></p>
<p><font face="Times New Roman" size="3">Const VK_O = 24</font></p>
<p><font face="Times New Roman" size="3">Const VK_TAB = 15</font></p>
<p><font face="Times New Roman" size="3">Const VK_F5 = 63</font></p>
<p><font face="Times New Roman" size="3">Const VK_NUMLOCK = 69</font></p>
<p><font face="Times New Roman" size="3">Dim deviceReplay</font></p>
<p><font face="Times New Roman" size="3">Private Sub SetupKeyboard()</font></p>
<p><font face="Times New Roman" size="3">Const CLASS_NAME = &quot;Microsoft.VisualBasic.Devices.Keyboard&quot;</font></p>
<p><font face="Times New Roman" size="3">Const ASSEMBLY = &quot;Microsoft.VisualBasic&quot;</font></p>
<p><font face="Times New Roman" size="3">Dim Keyboard</font></p>
<p><font face="Times New Roman" size="3">Set Keyboard = DotNetFactory.CreateInstance( CLASS_NAME, ASSEMBLY )</font></p>
<p><font face="Times New Roman" size="3">If CBool( Keyboard.CapsLock ) Then</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_CAPITAL</font></p>
<p><font face="Times New Roman" size="3">End If</font></p>
<p><font face="Times New Roman" size="3">If CBool( Keyboard.NumLock ) = False Then</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_NUMLOCK</font></p>
<p><font face="Times New Roman" size="3">End If</font></p>
<p><font face="Times New Roman" size="3">Set Keyboard = Nothing</font></p>
<p><font face="Times New Roman" size="3">End Sub</font></p>
<p><font face="Times New Roman" size="3">Private Sub SetupNotepad()</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_MENU</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_O</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_F</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;Courier New&quot;</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_TAB</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_TAB</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;14&quot;</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_RETURN</font></p>
<p><font face="Times New Roman" size="3">Wait 1</font></p>
<p><font face="Times New Roman" size="3">End Sub</font></p>
<p><font face="Times New Roman" size="3">Private Sub PrintCharacter( ByVal code )</font></p>
<p><font face="Times New Roman" size="3">Dim i, digit</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.KeyDown VK_MENU</font></p>
<p><font face="Times New Roman" size="3">For i = 1 To Len( code )</font></p>
<p><font face="Times New Roman" size="3">digit = Mid( code, i, 1 )</font></p>
<p><font face="Times New Roman" size="3">Execute &quot;deviceReplay.PressKey VK_NUMPAD&quot; &amp; digit</font></p>
<p><font face="Times New Roman" size="3">Next</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.KeyUp VK_MENU</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_RETURN</font></p>
<p><font face="Times New Roman" size="3">End Sub</font></p>
<p><font face="Times New Roman" size="3">Set deviceReplay = CreateObject( &quot;Mercury.DeviceReplay&quot; )</font></p>
<p><font face="Times New Roman" size="3">SystemUtil.Run &quot;notepad.exe&quot;, &quot;&quot;, &quot;&quot;, &quot;open&quot;, 3</font></p>
<p><font face="Times New Roman" size="3">Window( &quot;nativeclass:=Notepad&quot;, &quot;index:=0&quot; ).Activate micLeftBtn</font></p>
<p><font face="Times New Roman" size="3">' ** Setup Notepad - Font courier new, size 14,</font></p>
<p><font face="Times New Roman" size="3">' ** NUM-LOCK pressed and CAPS-LOCK unpressed</font></p>
<p><font face="Times New Roman" size="3">Call SetupKeyboard()</font></p>
<p><font face="Times New Roman" size="3">Call SetupNotepad()</font></p>
<p><font face="Times New Roman" size="3">' ** inserting date</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_F5</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_RETURN</font></p>
<p><font face="Times New Roman" size="3">' ** a grave character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;A grave: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;0192&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** O circumflex character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;O circumflex: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;0212&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** s caron character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;s caron: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;0154&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** n tilde character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;n tilde: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;164&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** Y umlaut character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;Y umlaut: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;0159&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** c cedila character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;c cedila: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;0231&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** O with accent character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;O with accent: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;0211&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** Inverted question mark character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;Inverted question mark: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;168&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** Euro character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;Euro: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;0128&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** i with accent character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;i with accent : &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;0237&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** Male Sign character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;Male Sign: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;11&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** AE ligature character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;AE ligature: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;0198&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** aa character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;aa: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;0197&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** oethel character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;oethel: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;0156&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** Eth character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;Eth: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;0208&quot; )</font></p>
<p><font face="Times New Roman" size="3">' ** Uppercase Sigma character</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;Uppercase Sigma: &quot;</font></p>
<p><font face="Times New Roman" size="3">Call PrintCharacter( &quot;228&quot; )</font></p>
<p><font face="Times New Roman" size="3">Set deviceReplay = Nothing</font></p>]]></description>
		</item>
		    
		
		<item>
			<title>揭秘QTP的DeviceReplay对象 一</title>
			<link>http://678ba.blog.sohu.com/90805654.html</link>
			<comments>http://678ba.blog.sohu.com/90805654.html#comment</comments>
			<dc:creator>just test it!</dc:creator>
			<pubDate>Sun, 22 Jun 2008 17:38:50 +0800</pubDate>
			<category>自动化测试工具</category>
			<guid>http://678ba.blog.sohu.com/90805654.html</guid>
			<description><![CDATA[<p align="left"><font size="3">原文：<font face="Times New Roman">The Undocumented DeviceReplay</font></font>（<font face="Times New Roman">http://www.advancedqtp.com/2008/03/undocumented-devicereplay/www.advancedqtp.com</font>）</p>
<p align="left"><font face="Times New Roman">&nbsp;</font></p>
<p align="left">不知道为什么<font face="Times New Roman">HP</font>的帮助文档中没有提供关于<font size="3"><font face="Times New Roman">DeviceReplay</font>的强大功能的信息描述。你可以在<font face="Times New Roman">Java</font>插件中却可以找到<font face="Times New Roman">DeviceReplay</font>的属性，但是对于那些不使用<font face="Times New Roman">Java</font>插件的人可能会觉得这个对象仅在<font face="Times New Roman">Java</font>程序的测试中可用。</font></p>
<h2>为什么要用DeviceReplay？</h2>
<p align="left">有些时候我们需要针对界面做一些指定的动作，例如右键单击一个对象，使用功能键（<font face="Times New Roman">Fx</font>）来激活某些热键的功能，这时候就可以使用<font size="3"><font face="Times New Roman">DeviceReplay</font>对象</font>，或者在<font face="Times New Roman">Object.Set</font>和<font face="Times New Roman">Object.Type</font>方法不生效时使用<font size="3"><font face="Times New Roman">DeviceReplay</font>。</font></p>
<p align="left">&nbsp;</p>
<p align="left">并且<font size="3"><font face="Times New Roman">DeviceReplay</font>在输入特殊符号以及不同语言的文字时会很有用，因为不需要安装指定的字体或改变键盘布局，这对于测试多语言环境的应用程序会非常有用。</font></p>
<p align="left"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p align="left">在鼠标操作方面，我发现DragDrop方法非常有用，可以使用它来执行拖拽的操作，把一个Item从一个Frame拖动到另外一个Frame，或者在应用程序之间拖动。</p>
<h2>Mercury.DeviceReplay对象</h2>
<p><font size="3"><font face="Times New Roman">Mercury.DeviceReplay</font>对象用于模拟鼠标单击和移动，还有键盘输入等操作。要使用<font face="Times New Roman">DeviceReplay</font>，你必须确保被测试的应用程序（<font face="Times New Roman">AUT</font>）是处于激活状态的窗口。如果你想对某个对象执行一项操作，则该对象必须拥有焦点（<font face="Times New Roman">focus</font>）。对于<font face="Times New Roman">Windows</font>应用程序，可以使用<font face="Times New Roman">Activate</font>方法：</font></p>
<p><font size="3"><font face="Times New Roman">Window( &quot;W&quot; ).Activate micLeftBtn</font></font></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p><font size="3">如果想把焦点设置到某个指定的对象上，通常使用<font face="Times New Roman">Click</font>方法可以完成。</font></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p><font size="3">对于<font face="Times New Roman">Web</font>环境的应用程序，<font face="Times New Roman">Activate</font>方法不被支持，因此可以使用下面的技巧来完成：</font></p>
<p><font face="Times New Roman" size="3">hwnd = Browser( &quot;B&quot; ).GetROProperty( &quot;hwnd&quot; )</font></p>
<p><font face="Times New Roman" size="3">Window( &quot;hwnd:=&quot; &amp; hwnd ).Activate micLeftBtn</font></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p><font size="3">通常可以使用<font face="Times New Roman">FireEvent &ldquo;onfocusin&rdquo;</font>或<font face="Times New Roman">object.focus</font>，例如<font face="Times New Roman">WebEdit(&ldquo;WE&rdquo;).Object.focus</font>或<font face="Times New Roman">WebEdit(&ldquo;WE&rdquo;)</font>。<font face="Times New Roman">FireEvent &ldquo;onfocusin&rdquo;</font>。</font></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p><font size="3">在调用<font face="Times New Roman">DeviceReplay</font>对象的方法之前，你需要首先创建<font face="Times New Roman">DeviceReplay</font>对象：</font></p>
<p><font size="3"><font face="Times New Roman">Set deviceReplay = CreateObject( &quot;Mercury.DeviceReplay&quot; )</font></font></p>
<h2>Microsoft.VisualBasic.Devices.Keyboard类</h2>
<p><font size="3">为什么我要在介绍<font face="Times New Roman">DeviceReplay</font>对象之前介绍这个<font face="Times New Roman">.NET</font>的类呢？<font face="Times New Roman">DeviceReplay</font>是一个强大的未被文档化的对象，但是有一定的局限性。其中一个局限就是不能判断一个<font face="Times New Roman">Control</font>键是否已经被按下。在输入一个大写字母之前，我们需要知道<font face="Times New Roman">CAPS-LOCK</font>键是否已经按下。在使用数字键盘之前我们需要检查<font face="Times New Roman">NUM-LOCK</font>键是否已经被按下。否则我们在切换键盘输入状态时可能得到的并不是我们想要的状态。</font></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p><font size="3"><font face="Times New Roman">Devices.Keyboard</font>类提供了属性，可用于获取当前的键盘状态，例如当前什么键被按下了，并且提供一个方法用于向激活的窗口发送键盘敲击事件。</font></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p><font size="3">几个有用的属性包括：</font></p>
<p><font size="3"><font face="Times New Roman">AltKeyDown - </font>判断<font face="Times New Roman">ALT</font>键是否处于按下状态。</font></p>
<p><font size="3"><font face="Times New Roman">CapsLock - &nbsp;</font>判断<font face="Times New Roman">CAPS LOCK</font>键是否处于打开状态。</font></p>
<p><font size="3"><font face="Times New Roman">CtrlKeyDown - </font>判断<font face="Times New Roman">CTRL </font>键是否处于按下状态。</font></p>
<p><font size="3"><font face="Times New Roman">NumLock - </font>判断<font face="Times New Roman">NUM LOCK</font>键是否处于打开状态。</font></p>
<p><font size="3"><font face="Times New Roman">ScrollLock - </font>判断<font face="Times New Roman">SCROLL LOCK</font>键是否处于打开状态。</font></p>
<p><font size="3"><font face="Times New Roman">ShiftKeyDown - </font>判断<font face="Times New Roman">SHIFT</font>键是否处于按下状态。</font></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p><font face="Times New Roman" size="3">Set Keyboard = DotNetFactory.CreateInstance(</font></p>
<p><font face="Times New Roman" size="3">&quot;Microsoft.VisualBasic.Devices.Keyboard&quot;, &quot;Microsoft.VisualBasic&quot; )</font></p>
<p><font face="Times New Roman" size="3">Print CBool( Keyboard.AltKeyDown )</font></p>
<p><font face="Times New Roman" size="3">Print CBool( Keyboard.CapsLock )</font></p>
<p><font face="Times New Roman" size="3">Print CBool( Keyboard.CtrlKeyDown )</font></p>
<p><font face="Times New Roman" size="3">Print CBool( Keyboard.NumLock )</font></p>
<p><font face="Times New Roman" size="3">Print CBool( Keyboard.ScrollLock )</font></p>
<p><font face="Times New Roman" size="3">Print CBool( Keyboard.ShiftKeyDown )</font></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p><font size="3">注意：在使用<font face="Times New Roman">DotNetFactory</font>时数据类型必须被转换</font></p>
<h2>System.Windows.Forms.Control 类</h2>
<p><font size="3"><font face="Times New Roman">DeviceReplay</font>的另外一个局限是不能获取当前鼠标（光标）在屏幕的位置。而<font face="Times New Roman">System.Windows.Forms.Control</font>这个类定义了那些拥有视觉表现的控件的基类。</font></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p><font size="3">通过<font face="Times New Roman">MousePosition</font>属性可以获取当前鼠标光标在屏幕坐标的位置。访问<font face="Times New Roman">MousePosition</font>属性时，可以返回代表鼠标光标位置的<font face="Times New Roman">Point</font>数据。</font></p>
<h3><font size="5">我的鼠标在哪？</font></h3>
<p><font face="Times New Roman" size="3">Set ctlr = DotNetFactory.CreateInstance(&quot;System.Windows.Forms.Control&quot;)</font></p>
<p><font face="Times New Roman" size="3">For i = 1 To 10</font></p>
<p><font face="Times New Roman" size="3">Wait 2</font></p>
<p><font face="Times New Roman" size="3">Print &quot;1. X=&quot; &amp; ctlr.MousePosition.X &amp; &quot;; Y=&quot; &amp; ctlr.MousePosition.Y</font></p>
<p><font face="Times New Roman" size="3">Next</font></p>
<h2>Mercury.DeviceReplay的方法</h2>
<h3><font size="5"><font face="Times New Roman">SendString</font>方法</font></h3>
<p><strong><font size="3">描述</font></strong></p>
<p><font size="3">向激活的窗口发送一个或多个键盘按键，就像敲击键盘一样。</font></p>
<p><strong><font size="3">语法</font></strong></p>
<p><font size="3"><font face="Times New Roman">object.SendString( str )</font></font></p>
<p><strong><font size="3">参数</font></strong></p>
<p align="left">object ： <font size="3"><font face="Times New Roman">Mercury.DeviceReplay</font>对象。</font></p>
<p align="left">str ： <font size="3">敲击的字符串。</font></p>
<p><strong><font size="3">返回值</font></strong></p>
<p><font size="3">无。</font></p>
<p><strong><font size="3">例子</font></strong></p>
<p><font size="3">下面的例子会激活记事本（<font face="Times New Roman">notepad</font>）并输入一段字符：</font></p>
<p><font face="Times New Roman" size="3">Set deviceReplay = CreateObject( &quot;Mercury.DeviceReplay&quot; )</font></p>
<p><font face="Times New Roman" size="3">SystemUtil.Run &quot;notepad.exe&quot;, &quot;&quot;, &quot;&quot;, &quot;open&quot;</font></p>
<p><font face="Times New Roman" size="3">' ** this line always identifies the notepad window.</font></p>
<p><font face="Times New Roman" size="3">Window( &quot;nativeclass:=Notepad&quot;, &quot;index:=0&quot; ).Activate micLeftBtn</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString( &quot;DeviceReplay&quot; )</font></p>
<p><font face="Times New Roman" size="3">Set deviceReplay = Nothing</font></p>
<h3><font size="5"><font face="Times New Roman">KeyDown</font>方法</font></h3>
<p><strong><font size="3">描述</font></strong></p>
<p><font size="3">模拟一个按键的按下并保持（相当于<font face="Times New Roman">Win32</font>的<font face="Times New Roman">KEY_DOWN</font>事件）。</font></p>
<p><strong><font size="3">语法</font></strong></p>
<p><font size="3"><font face="Times New Roman">object.KeyDown( key )</font></font></p>
<p><strong><font size="3">参数</font></strong></p>
<p align="left">object ： <font size="3"><font face="Times New Roman">Mercury.DeviceReplay</font>对象。</font></p>
<p><font face="Times New Roman" size="3">key</font> ： <font size="3">按键的数值码。可查阅后面的&ldquo;<font face="Times New Roman">Key Codes </font>参考&rdquo;。</font></p>
<p><strong><font size="3">返回值</font></strong></p>
<p><font size="3">无。</font></p>
<p><strong><font size="3">例子</font></strong></p>
<p><font size="3">下面的例子会激活记事本（<font face="Times New Roman">notepad</font>）程序并使用大写和小写的方式输入字符串。注意在发送第一个字符串时，<font face="Times New Roman">SHIFT</font>键保持被按下的状态：</font></p>
<p><font face="Times New Roman" size="3">Const VK_SHIFT = 42</font></p>
<p><font face="Times New Roman" size="3">Const VK_RETURN = 28</font></p>
<p><font face="Times New Roman" size="3">Set deviceReplay = CreateObject( &quot;Mercury.DeviceReplay&quot; )</font></p>
<p><font face="Times New Roman" size="3">SystemUtil.Run &quot;notepad.exe&quot;, &quot;&quot;, &quot;&quot;, &quot;open&quot;</font></p>
<p><font face="Times New Roman" size="3">Window( &quot;nativeclass:=Notepad&quot;, &quot;index:=0&quot; ).Activate micLeftBtn</font></p>
<p><font face="Times New Roman" size="3">' ** Typing uppercase</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.KeyDown VK_SHIFT</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString( &quot;devicereplay&quot; )</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_RETURN</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.KeyUp VK_SHIFT</font></p>
<p><font face="Times New Roman" size="3">' ** Typing in lower case</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString( &quot;devicereplay&quot; )</font></p>
<p><font size="3"><font face="Times New Roman">Set deviceReplay = Nothing</font></font></p>
<p><strong><font size="3">提示</font></strong></p>
<p><font size="3">在<font face="Times New Roman">KeyDown</font>后应该有相应的<font face="Times New Roman">KeyUp</font>方法的调用。</font></p>
<p><font size="3"><font face="Times New Roman">KeyDown</font>方法就像人工按下一个按键并保持按下的状态。</font></p>
<h3><font size="5"><font face="Times New Roman">KeyUp</font>方法</font></h3>
<p><strong><font size="3">描述</font></strong></p>
<p><font size="3">模拟通过键盘释放某个按下的按键。</font></p>
<p><strong><font size="3">语法</font></strong></p>
<p><font size="3"><font face="Times New Roman">object.KeyUp( key )</font></font></p>
<p><strong><font size="3">参数</font></strong></p>
<p align="left">object ： <font size="3"><font face="Times New Roman">Mercury.DeviceReplay</font>对象。</font></p>
<p><font face="Times New Roman" size="3">key</font> ：<font size="3"><font face="Times New Roman"> </font>按键的数值码。可查阅后面的&ldquo;<font face="Times New Roman">Key Codes </font>参考&rdquo;。</font></p>
<p><strong><font size="3">返回值</font></strong></p>
<p><font size="3">无。</font></p>
<p><strong><font size="3">例子</font></strong></p>
<p><font size="3">下面的例子会激活并并使用热键<font face="Times New Roman">CTRL+O</font>来打开记事本（<font face="Times New Roman">notepad</font>）的菜单，然后用<font face="Times New Roman">ESC</font>键关闭对话框。<font face="Times New Roman"> </font></font></p>
<p><font size="3"><font face="Times New Roman">Const VK_O = 24</font></font></p>
<p><font face="Times New Roman" size="3">Const VK_CONTROL = 29</font></p>
<p><font face="Times New Roman" size="3">Const VK_ESCAPE = 1</font></p>
<p><font face="Times New Roman" size="3">Set deviceReplay = CreateObject( &quot;Mercury.DeviceReplay&quot; )</font></p>
<p><font face="Times New Roman" size="3">SystemUtil.Run &quot;notepad.exe&quot;, &quot;&quot;, &quot;&quot;, &quot;open&quot;</font></p>
<p><font face="Times New Roman" size="3">Window( &quot;nativeclass:=Notepad&quot;, &quot;index:=0&quot; ).Activate micLeftBtn</font></p>
<p><font face="Times New Roman" size="3">' ** Typing uppercase</font></p>
<p><font face="Times New Roman" size="3">Wait 1</font></p>
<p><font face="Times New Roman" size="3">' ** Opening the menu Ctrl + O</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.KeyDown VK_CONTROL</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_O</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.KeyUp VK_CONTROL</font></p>
<p><font face="Times New Roman" size="3">Wait 2</font></p>
<p><font face="Times New Roman" size="3">' ** Closing the menu</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_ESCAPE</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;Menu Open, was closed.&quot;</font></p>
<p><font face="Times New Roman" size="3">Set deviceReplay = Nothing</font></p>
<p><strong><font size="3">提示</font></strong></p>
<p><font size="3"><font face="Times New Roman">KeyUp</font>方法应该与<font face="Times New Roman">KeyDown</font>方法配对使用。</font></p>
<p><font size="3">多个<font face="Times New Roman">KeyUp</font>不会对应用程序造成影响。</font></p>
<p><font size="3">如果需要组合热键，仅需要像人工执行的方式一样即可。</font></p>
<h3><font size="5"><font face="Times New Roman">PressKey</font>方法</font></h3>
<p><strong><font size="3">描述</font></strong></p>
<p><font size="3">模拟通过键盘按下一个按键并立即释放。</font></p>
<p><strong><font size="3">语法</font></strong></p>
<p><font size="3"><font face="Times New Roman">object.PressKey( key )</font></font></p>
<p><strong><font size="3">参数</font></strong></p>
<p align="left">object ：<font size="3"><font face="Times New Roman"> Mercury.DeviceReplay</font>对象。</font></p>
<p><font face="Times New Roman" size="3">key</font> ： <font size="3">按键的数值码。可查阅后面的&ldquo;<font face="Times New Roman">Key Codes </font>参考&rdquo;。</font></p>
<p><strong><font size="3">返回值</font></strong></p>
<p><font size="3">无。</font></p>
<p><strong><font size="3">例子</font></strong></p>
<p><font size="3">下面的例子会激活记事本并使用热键<font face="Times New Roman">CTRL+O</font>来模拟选择文件打开菜单，然后用<font face="Times New Roman">ESCAPE</font>按键关闭对话框。</font></p>
<p><font size="3"><font face="Times New Roman">Const VK_O = 24 : Const VK_F = 33</font></font></p>
<p><font face="Times New Roman" size="3">Const VK_CONTROL = 29 : Const VK_ESCAPE = 1 : Const VK_MENU = 56</font></p>
<p><font face="Times New Roman" size="3">Set deviceReplay = CreateObject( &quot;Mercury.DeviceReplay&quot; )</font></p>
<p><font face="Times New Roman" size="3">SystemUtil.Run &quot;notepad.exe&quot;, &quot;&quot;, &quot;&quot;, &quot;open&quot;</font></p>
<p><font face="Times New Roman" size="3">Window( &quot;nativeclass:=Notepad&quot;, &quot;index:=0&quot; ).Activate micLeftBtn</font></p>
<p><font face="Times New Roman" size="3">Wait 1</font></p>
<p><font face="Times New Roman" size="3">' ** Opening the menu Alt + F + O</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_MENU</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_F</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_O</font></p>
<p><font face="Times New Roman" size="3">Wait 2</font></p>
<p><font face="Times New Roman" size="3">' ** Closing the menu</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.PressKey VK_ESCAPE</font></p>
<p><font face="Times New Roman" size="3">deviceReplay.SendString &quot;Open menu was closed.&quot;</font></p>
<p><font face="Times New Roman" size="3">Set deviceReplay = Nothing</font></p>]]></description>
		</item>
		    
		
		<item>
			<title>我的简历（不断更新中）</title>
			<link>http://678ba.blog.sohu.com/90458225.html</link>
			<comments>http://678ba.blog.sohu.com/90458225.html#comment</comments>
			<dc:creator>just test it!</dc:creator>
			<pubDate>Thu, 19 Jun 2008 16:13:35 +0800</pubDate>
			<category>我的简历</category>
			<guid>http://678ba.blog.sohu.com/90458225.html</guid>
			<description><![CDATA[<p align="center"><b>个人简历</b></p>
<p align="center">求职意向：软件测试工程师，质量保证工程师</p>
<p align="left"><b>一</b><b> </b><b>基本信息</b><b></b></p>
<table cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td valign="top">
<p><b>姓名</b></p></td>
<td valign="top">
<p>XX</p></td>
<td valign="top">
<p><b>性别</b></p></td>
<td valign="top">
<p>男</p></td>
<td valign="top">
<p><b>民族</b></p></td>
<td valign="top">
<p>汉</p></td></tr>
<tr>
<td valign="top">
<p><b>毕业学校</b></p></td>
<td valign="top">
<p>大连交通大学</p></td>
<td valign="top">
<p><b>最高学历</b></p></td>
<td valign="top">
<p>本科</p></td>
<td valign="top">
<p><b>专业</b></p></td>
<td valign="top">
<p>软件工程</p></td></tr>
<tr>
<td valign="top">
<p><b>政治面貌</b></p></td>
<td valign="top">
<p><b>党员</b></p></td>
<td valign="top">
<p><b>手机</b></p></td>
<td valign="top">
<p>13898458581</p></td>
<td valign="top">
<p><b>MSN</b></p></td>
<td valign="top">
<p>zhaoqiang034100@163.om</p></td></tr>
<tr>
<td valign="top">
<p><b>QQ</b></p></td>
<td valign="top">
<p>414242496</p></td>
<td valign="top">
<p><b>E-mail</b></p></td>
<td valign="top">
<p>zq_test@126.com</p></td>
<td valign="top">
<p><b>学校任职</b></p></td>
<td valign="top">
<p><b>学院团支部干事，班长</b></p></td></tr>
<tr>
<td valign="top">
<p><b>教育经历</b></p></td>
<td valign="top" colspan="5">
<p>大连交通大学软件工程专业<b>，</b>澳大利亚北墨尔本大学信息技术专业，<b>QAI国际软件测试工程师培训，自学CSTE培训教材</b></p></td></tr></tbody></table>
<p><b>二</b><b> </b><b>项目实战</b><b></b></p>
<table cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td valign="top">
<p><b>项目名称</b></p></td>
<td valign="top">
<p><b>测试内容</b></p></td>
<td valign="top">
<p><b>测试工具</b></p></td>
<td valign="top">
<p><b>工作内容</b></p></td></tr>
<tr>
<td valign="top">
<p>QAI学员信息管理系统</p></td>
<td valign="top">
<p>功能测试</p></td>
<td valign="top">
<p>&nbsp;</p></td>
<td valign="top">
<p>提交测试报告、测试用例、分析BUG的错误情况和分布率</p></td></tr>
<tr>
<td valign="top">
<p><b>Tuxedo</b><b>性能测试</b></p></td>
<td valign="top">
<p>性能测试</p></td>
<td valign="top">
<p>LoadRunner</p></td>
<td valign="top">
<p>自己在Linux下搭建Tuxedo服务器，并用直接录制和编写DLL的两种方式来进行脚本测试</p></td></tr>
<tr>
<td valign="top">
<p><b>Carronedu Website(</b><b>开沅教育网站)</b></p></td>
<td valign="top">
<p>GUI、性能测试</p></td>
<td valign="top">
<p>Internet Supervision Url Check、Browsershots、LoadRunner</p></td>
<td valign="top">
<p>编写系统测试计划书，设计测试用例并执行，提交bug报告</p></td></tr>
<tr>
<td valign="top">
<p><b>MSN Assit </b></p></td>
<td valign="top">
<p>功能测试</p></td>
<td valign="top">
<p>无</p></td>
<td valign="top">
<p>设计测试策略和用例，执行测试</p></td></tr>
<tr>
<td valign="top">
<p>HP Web Tours Application V1.0</p></td>
<td valign="top">
<p>性能测试</p></td>
<td valign="top">
<p>LoadRunner</p></td>
<td valign="top">
<p>设计测试场景，用自动化工具进行测试并分析，写出报告</p></td></tr>
<tr>
<td valign="top">
<p><b>Google Talk</b></p></td>
<td valign="top">
<p>GUI，功能测试</p></td>
<td valign="top">
<p>无</p></td>
<td valign="top">
<p>编写测试用例和报告</p></td></tr>
<tr>
<td valign="top">
<p>航空售票系统Flight 4.0</p></td>
<td valign="top">
<p>功能测试、性能测试</p></td>
<td valign="top">
<p>LoadRunner，QTP</p></td>
<td valign="top">
<p>编写测试用例 ；录制并加强脚本健壮性</p></td></tr></tbody></table>
<p><b>三</b><b> </b><b>所获荣誉</b><b></b></p>
<table cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td valign="top">
<p><b>在校获一等奖学金</b></p></td>
<td valign="top">
<p>全院只有9人获此奖学金</p></td></tr>
<tr>
<td valign="top">
<p><b>大连交通大学优秀班干部</b></p></td>
<td valign="top">
<p>全院只有10人获得</p></td></tr>
<tr>
<td valign="top">
<p><b>大连交通大学三好学生</b></p></td>
<td valign="top">
<p>全院只有3人获得</p></td></tr>
<tr>
<td valign="top">
<p><b>大连交通大学优秀毕业生</b></p></td>
<td valign="top">
<p>全校只有10人获得</p></td></tr></tbody></table>
<p><b>四</b><b> </b><b>技能</b><b>PK</b><b>表</b><b></b></p>
<table cellspacing="0" cellpadding="0" align="left" border="1">
<tbody>
<tr>
<td valign="top">
<p><b>开发专业技能</b></p></td>
<td valign="top">
<p>开发工具</p></td>
<td valign="top">
<p><b>所获证书</b></p></td></tr>
<tr>
<td valign="top">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 程序逻辑C语言实现</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C++</p></td>
<td valign="top">
<p>VC++6.0</p></td>
<td valign="top" rowspan="2">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>获国家</b><b>计算机技术与软件专业技术资格（水平）考试</b><b>初级程序员证书</b><b></b></p>
<p>&nbsp;</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 获澳大利亚北墨尔本大学信息技术专业证书</p></td></tr>
<tr>
<td valign="top">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Java</b><b>面向对象程序设计</b></p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Java-Swing应用程序设计</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>J2EE</b><b>服务器应用开发与设计</b></p></td>
<td valign="top">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JBuilder </p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Eclipse</b></p></td></tr>
<tr>
<td valign="top">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>SQL Server</b><b>数据库应用</b></p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>MySQL</b></p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据结构基础知识</p></td>
<td valign="top">
<p>掌握了相关理论知识。熟悉<b>MySQL</b><b>、SQL Server</b><b>、DB2</b>等主流数据库管理系统</p></td>
<td valign="top">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>获微软SQL 实施与维护认证</b></p></td></tr>
<tr>
<td valign="top">
<p><b>测试专业技能</b></p></td>
<td valign="top">
<p>备注</p></td>
<td valign="top">
<p><b>所获证书</b><b></b></p></td></tr>
<tr>
<td valign="top">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>软件工程</b></p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 软件设计模式</p></td>
<td valign="top">
<p>牢固掌握了<b>软件工程，传统软件工程和面向对象软件工程</b>的基本知识。了解23种设计模式。</p></td>
<td valign="top" rowspan="7">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>QAI国际软件测试工程师认证</b><b></b></p>
<p>&nbsp;</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>QAI-eLearning认证证书</b><b></b></p>
<p>&nbsp;</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>NITE国家信息技术紧缺人才证书</b><b></b></p></td></tr>
<tr>
<td valign="top">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>UML统一建模语言</b></p></td>
<td valign="top">
<p>熟悉UML，掌握了 <b>Rational</b>和<b>Visio</b>工具。</p></td></tr>
<tr>
<td valign="top">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>软件质量管理</b></p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 软件过程管理</p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 软件技术评审</p></td>
<td valign="top">
<p>对<b>CMM</b><b>，CMMI</b><b>，ISO</b>的理论知识有较牢固的掌握和理解。 </p></td></tr>
<tr>
<td valign="top">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>软件测试策略</b></p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>测试用例设计</b></p></td>
<td valign="top">
<p>熟悉测试流程，策略等知识。掌握了多种测试用例设计的方法。</p></td></tr>
<tr>
<td valign="top">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>软件测试自动化</b></p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>测试工具应用</b></p></td>
<td valign="top">
<p>熟练掌握了主流的测试工具和管理工具，如<b>LoadRunner</b>，<b>QTP</b><b>，QC,JMeter</b>等。对测试自动化有较深的理解。并在不断学习<b>自动化测试框架</b>。</p></td></tr>
<tr>
<td valign="top">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>项目设计及实现</b></p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>项目流程控制</b></p></td>
<td valign="top">
<p>熟悉测试项目的整个流程控制和关键点。</p></td></tr>
<tr>
<td valign="top">
<p>软件配置管理</p></td>
<td valign="top">
<p>了解常用的配置工具，如<b>VSS, winCVS</b></p></td></tr>
<tr>
<td valign="top">
<p><b>辅助知识</b></p></td>
<td valign="top">
<p align="left">备注</p></td>
<td valign="top">
<p align="left"><b>所获证书</b></p></td></tr>
<tr>
<td valign="top">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Windows操作系统</b></p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Linux操作系统</b></p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM AIX操作系统</p></td>
<td valign="top">
<p align="left">具备对操作系统相关理论和实践的知识。</p></td>
<td valign="top">
<p align="left">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM AIX本地化认证证书</p></td></tr>
<tr>
<td valign="top">
<p><b>英语技能</b></p></td>
<td valign="top">
<p>备注</p></td>
<td valign="top">
<p align="left"><b>所获证书</b></p></td></tr>
<tr>
<td valign="top">
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>大学英语四级</b></p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>NMIT</b><b>商务英语</b></p>
<p>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>初级日语</b></p></td>
<td valign="top">
<p>能看懂英文文章，并用英语进行日常交流。</p></td>
<td valign="top">
<p align="left">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>NMIT</b><b>商务英语证书</b></p>
<p align="left">l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 国家英语A级证书</p></td></tr></tbody></table>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b></b>&nbsp;</p>
<p><b>五</b><b> </b><b>我的核心优势</b><b>（获得大学生素质拓展证书）</b></p>
<p>◆有<b>创新和设计能力</b>，如：在大学期间多次负责一些校内报纸的版面设计、排版等工作。</p>
<p>◆有<b>策划和组织能力</b>，如：在大学期间曾多次领导班级成员组织小型文艺演出、参加社团。</p>
<p>◆有较好的<b>语言表达能力</b>，如：曾多次参加一些演讲比赛和校内外的一些活动。</p>
<p>◆有较强的<b>团队精神</b>，如：在同学中，有良好的人际关系；在同学中有较高的威信；善于协同&ldquo;作战&rdquo;。<b></b></p>
<p>&nbsp;</p>]]></description>
		</item>
		    
		
		<item>
			<title>UML图形在软件过程中各个阶段的应用</title>
			<link>http://678ba.blog.sohu.com/90092789.html</link>
			<comments>http://678ba.blog.sohu.com/90092789.html#comment</comments>
			<dc:creator>just test it!</dc:creator>
			<pubDate>Sat, 14 Jun 2008 15:31:28 +0800</pubDate>
			<category>UML</category>
			<guid>http://678ba.blog.sohu.com/90092789.html</guid>
			<description><![CDATA[<div>&nbsp;</div>
<table>
<tbody>
<tr>
<td>
<div>
<p></p>
<p>在软件开发中，我们经常会用到用例图、活动图、和静态结构图，其他表示方式作为此三种方式的补充</p>
<p><font face="Times New Roman">用例图：<br />提出了业务功能的名称，即功能和操作者，<br />比如人员入职、离职等名词。<br />用于需求的过程，即是什么，需要展现用户需要</font></p>
<p><font face="Times New Roman">活动图：<br />规范了每个业务名词的具体的业务流程，即每个用例的活动，从开始到结束，<br />比如入职具体的过程是什么，从入职通知、报到、办理手续、做到工位的一连串动作。<br />用于设计阶段用于分析用户的业务出来过程<br />将用例转换为活动，就是将每个用类名词罗列出来，成为一个个的业务流程名称，画出每个原子级业务流程</font></p>
<p><font face="Times New Roman">静态结构图：<br />对象，即类图，同时也规划出了数据库字段和页面的元素，<br />比如入职通知是个对象，是个类，相应的有通知的表结构和页面元素<br />用户详细设计阶段<br />将业务流程转换为对象，就是将业务流程上的每个点抽象成一个对象<br /></font></p>
<p></p>
<p></p>
<p><font face="Times New Roman">一、</font>用例图：</p>
<p>从用户的角度描述系统功能，指出个功能的操作者。</p>
<p><img src="http://hiphotos.baidu.com/zhao%5Fe893/pic/item/ffd4b5efc4c96f06fdfa3c91.jpg" border="0" /></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p><font face="Times New Roman">二、</font>类图：</p>
<p>描述类的内部结构，即属性和操作，描述类之间的联系，即关联、依赖、聚合等。</p>
<div><img src="http://hiphotos.baidu.com/zhao%5Fe893/pic/item/2276114f11510b26afc3aba1.jpg" border="0" /></div>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p><font face="Times New Roman">三、</font>对象图：</p>
<p>类的实例，表示方式与类一致</p>
<p><font face="Times New Roman">四、</font>包图：</p>
<p>描述包与包、包与类之间的关系</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<div></div>
<div></div>
<p></p><img src="http://hiphotos.baidu.com/zhao%5Fe893/pic/item/6ccff511974b84d6a7ef3fa3.jpg" border="0" /> 
<p></p>
<div>
<p><font face="Times New Roman">五、</font>状态图：</p>
<p>描述一个对象所有可能的状态，及事件发生状态转换的条件</p></div>
<p></p>
<div>
<p><img src="http://hiphotos.baidu.com/zhao%5Fe893/pic/item/4adcd1fdb5ab6055d6887daf.jpg" border="0" /></p>
<p><font face="Times New Roman">六、</font>活动图：</p>
<p>描述为满足用类所要进行的活动，及活动之间的约束关系，很容易表达并发活动</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p>如果客户订单跨越了订货、销售、库存管理，则可以使用涌道和对象流</p></div>
<p></p>
<div>
<p><img src="http://hiphotos.baidu.com/zhao%5Fe893/pic/item/ac3fc62af8d5c68b023bf661.jpg" border="0" /></p>
<p><font face="Times New Roman">七、</font>顺序图：</p>
<p>描述对象之间消息发送的顺序，强调时间和顺序</p>
<p></p>
<p></p>
<div>
<p><img src="http://hiphotos.baidu.com/zhao%5Fe893/pic/item/3fef40668af0fb34aa184c6d.jpg" border="0" /></p>
<p><font face="Times New Roman">八、</font>协作图：</p>
<p>描述对象之间的消息通讯关系，消息顺序用编号来描述</p>
<p></p>
<p></p>
<div>
<p><img src="http://hiphotos.baidu.com/zhao%5Fe893/pic/item/5ed869cbcaae000fbf09e668.jpg" border="0" /></p>
<p><font face="Times New Roman">九、</font>构件图：</p>
<p>描述代码部件的物理结构，及部件间的相互关系，一个部件可以是资源代码部件、二进制部件<font face="Times New Roman"> </font>和可执行部件</p>
<p></p>
<p></p>
<div>
<p><img src="http://hiphotos.baidu.com/zhao%5Fe893/pic/item/371b796332ce99700d33fa6a.jpg" border="0" /></p>
<p><font face="Times New Roman">十、</font>部署图：</p>
<p>描述系统中软硬件的物理体系结构。</p>
<p></p>
<p></p>
<div><img src="http://hiphotos.baidu.com/zhao%5Fe893/pic/item/2856bf34b23f40a7d0a2d385.jpg" border="0" /></div></div></div></div></div>
<p></p>
<div>
<p></p>
<p></p>
<p>&nbsp;</p></div></div></td></tr></tbody></table>]]></description>
		</item>
		    
		
		<item>
			<title>MySQL入门学习(五) 修改和备份、批处理</title>
			<link>http://678ba.blog.sohu.com/89618504.html</link>
			<comments>http://678ba.blog.sohu.com/89618504.html#comment</comments>
			<dc:creator>just test it!</dc:creator>
			<pubDate>Mon, 9 Jun 2008 00:46:50 +0800</pubDate>
			<category>MySQL学习</category>
			<guid>http://678ba.blog.sohu.com/89618504.html</guid>
			<description><![CDATA[<p>修改和备份、批处理 </p>
<p>有时我们要对数据库表和数据库进行修改和删除，可以用如下方法实现： </p>
<p>1、增加一列： <br /><br />如在前面例子中的mytable表中增加一列表示是否单身single: <br /><br />mysql&gt; alter table mytable add column single char(1); </p>
<p>2、修改记录 <br /><br />将abccs的single记录修改为&ldquo;y&rdquo;： <br /><br />mysql&gt; update mytable set single='y' where name='abccs'; </p>
<p>现在来看看发生了什么： <br /><br />mysql&gt; select * from mytable; <br /><br />+----------+------+------------+-----------+--------+ <br /><br />| name | sex | birth | birthaddr | single | <br /><br />+----------+------+------------+-----------+--------+ <br /><br />| abccs|f | 1977-07-07 | china | y | <br /><br />| mary |f | 1978-12-12 | usa | NULL | <br /><br />| tom |m | 1970-09-02 | usa | NULL | <br /><br />+----------+------+------------+-----------+--------+ </p>
<p>3、增加记录 <br /><br />前面已经讲过如何增加一条记录，为便于查看，重复与此： <br /><br />mysql&gt; insert into mytable <br /><br />-&gt; values ('abc','f','1966-08-17','china','n'); <br /><br />Query OK, 1 row affected (0.05 sec) <br /><br />查看一下： <br /><br />mysql&gt; select * from mytable; <br /><br />+----------+------+------------+-----------+--------+ <br /><br />| name | sex | birth | birthaddr | single | <br /><br />+----------+------+------------+-----------+--------+ <br /><br />| abccs|f | 1977-07-07 | china | y | <br /><br />| mary |f | 1978-12-12 | usa | NULL | <br /><br />| tom |m | 1970-09-02 | usa | NULL | <br /><br />| abc |f | 1966-08-17 | china | n | <br /><br />+----------+------+------------+-----------+--------+ </p>
<p><br /><br />3、删除记录 <br /><br />用如下命令删除表中的一条记录： <br /><br />mysql&gt; delete from mytable where name='abc'; <br /><br />DELETE从表中删除满足由where给出的条件的一条记录。 </p>
<p>再显示一下结果： <br /><br />mysql&gt; select * from mytable; <br /><br />+----------+------+------------+-----------+--------+ <br /><br />| name | sex | birth | birthaddr | single | <br /><br />+----------+------+------------+-----------+--------+ <br /><br />| abccs|f | 1977-07-07 | china | y | <br /><br />| mary |f | 1978-12-12 | usa | NULL | <br /><br />| tom |m | 1970-09-02 | usa | NULL | <br /><br />+----------+------+------------+-----------+--------+ </p>
<p>4、删除表： <br /><br />mysql&gt; drop table ****(表1的名字)，***表2的名字; <br /><br />可以删除一个或多个表，小心使用。 </p>
<p>5、数据库的删除： <br /><br />mysql&gt; drop database 数据库名; <br /><br />小心使用。 </p>
<p>6、数据库的备份： <br /><br />退回到DOS： <br /><br />mysql&gt; quit <br /><br />d:mysqlbin <br /><br />使用如下命令对数据库abccs进行备份： <br /><br />mysqldump --opt abccs&gt;abccs.dbb <br /><br />abccs.dbb就是你的数据库abccs的备份文件。 </p>
<p>7、用批处理方式使用MySQL: </p>
<p>首先建立一个批处理文件mytest.sql,内容如下： <br /><br />use abccs; <br /><br />select * from mytable; <br /><br />select name,sex from mytable where name='abccs'; </p>
<p>在DOS下运行如下命令： <br /><br />d:mysqlbin mysql &lt; mytest.sql <br /><br />在屏幕上会显示执行结果。 </p>
<p>如果想看结果，而输出结果很多，则可以用这样的命令： <br /><br />mysql &lt; mytest.sql | more </p>
<p>我们还可以将结果输出到一个文件中： <br /><br />mysql &lt; mytest.sql &gt; mytest.out </p>]]></description>
		</item>
		    
		
		<item>
			<title>MySQL入门学习&#8212;&#8212;学习篇四 多表操作</title>
			<link>http://678ba.blog.sohu.com/89618412.html</link>
			<comments>http://678ba.blog.sohu.com/89618412.html#comment</comments>
			<dc:creator>just test it!</dc:creator>
			<pubDate>Mon, 9 Jun 2008 00:44:47 +0800</pubDate>
			<category>MySQL学习</category>
			<guid>http://678ba.blog.sohu.com/89618412.html</guid>
			<description><![CDATA[<p>多表操作 </p>
<p>前面我们熟悉了数据库和数据库表的基本操作，现在我们再来看看如何操作多个表。 </p>
<p>在一个数据库中，可能存在多个表，这些表都是相互关联的。我们继续使用前面的例子。前面建立的表中包含了员工的一些基本信息，如姓名、性别、出生日期、出生地。我们再创建一个表，该表用于描述员工所发表的文章，内容包括作者姓名、文章标题、发表日期。 </p>
<p>1、查看第一个表mytable的内容： <br /><br />mysql&gt; select * from mytable; <br /><br />+----------+------+------------+-----------+ <br /><br />| name | sex | birth | birthaddr | <br /><br />+----------+------+------------+-----------+ <br /><br />| abccs|f | 1977-07-07 | china | <br /><br />| mary |f | 1978-12-12 | usa | <br /><br />| tom |m | 1970-09-02 | usa | <br /><br />+----------+------+------------+-----------+ </p>
<p>2、创建第二个表title（包括作者、文章标题、发表日期）: <br /><br />mysql&gt; create table title(writer varchar(20) not null, <br /><br />-&gt; title varchar(40) not null, <br /><br />-&gt; senddate date); </p>
<p>向该表中填加记录，最后表的内容如下： <br /><br />mysql&gt; select * from title; <br /><br />+--------+-------+------------+ <br /><br />| writer | title | senddate | <br /><br />+--------+-------+------------+ <br /><br />| abccs | a1| 2000-01-23 | <br /><br />| mary | b1| 1998-03-21 | <br /><br />| abccs | a2| 2000-12-04 | <br /><br />| tom| c1| 1992-05-16 | <br /><br />| tom| c2| 1999-12-12 | <br /><br />+--------+-------+------------+ <br /><br />5 rows in set (0.00sec) </p>
<p>3、多表查询 <br /><br />现在我们有了两个表: mytable 和 title。利用这两个表我们可以进行组合查询： <br /><br />例如我们要查询作者abccs的姓名、性别、文章： <br /><br />mysql&gt; SELECT name,sex,title FROM mytable,title <br /><br />-&gt; WHERE name=writer AND name='abccs'; <br /><br />+-------+------+-------+ <br /><br />| name | sex | title | <br /><br />+-------+------+-------+ <br /><br />| abccs | f| a1| <br /><br />| abccs | f| a2| <br /><br />+-------+------+-------+ </p>
<p>上面例子中，由于作者姓名、性别、文章记录在两个不同表内，因此必须使用组合来进行查询。必须要指定一个表中的记录如何与其它表中的记录进行匹配。 <br /><br />注意：如果第二个表title中的writer列也取名为name（与mytable表中的name列相同）而不是writer时，就必须用mytable.name和title.name表示，以示区别。 </p>
<p>再举一个例子，用于查询文章a2的作者、出生地和出生日期： <br /><br />mysql&gt; select title,writer,birthaddr,birth from mytable,title <br /><br />-&gt; where mytable.name=title.writer and title='a2'; <br /><br />+-------+--------+-----------+------------+ <br /><br />| title | writer | birthaddr | birth | <br /><br />+-------+--------+-----------+------------+ <br /><br />| a2| abccs | china | 1977-07-07 | <br /><br />+-------+--------+-----------+------------+</p>]]></description>
		</item>
		    
		
	</channel>
</rss>
