这一天终于到来了。你现在可以逐字地告诉你的计算机运行一个报告,阅读一封信或者播放一首歌曲。本文将介绍如何利用Agent的文字到语言的转换功能。你将学会如何扩展VBA使其包括ActiveX,如何编写一个调用Agent来大声朗读活动Word文档的应用程序。
与包括Microsoft Office Assistant 在内的任何前辈都不相同,Microsoft Agent 15使用多个角色--Genie, Merlin, 和 Robby(见图1)--来提供人/机接口。每个角色都经过三维处理,并具有一套独特的卡通制作。
Agent的 第一个使命:仅仅露一面
在第一个项目中,我们将编写一个测试过程来证实Agent极其组件已被正确安装。第一次,我们不要求太多的东西;仅仅需要Agent露一面说几句话即可。我们将使用Genie来测试运行。
首先启动Microsoft Word 97,通过按住AL!(或选择Tools | Macro | Visual Basic Editor)来激活Visual Basic Editor。下一步,单击Project Explorer,或按Cr。该 *** 作将为你提供一个列表,里面包含了你已经打开的所有项目。请选中Normal项目(关于Normal的更为详细的信息,请参阅第5页的"Normal模板")。
创建表单。通过从Project Explorer或菜单中选择Insert | UserForm来插入一个表单。通过在Properties窗口中改变如下属性来修改UserFform(为了显示Properties窗口,可能需要按4键)。
Caption: Agent Control Form
Width: 100
Height: 85
在表单上放置两个CommandButtons。然后将它们的Caption属性改为Start Agent和Stop Agent,以便它们可以在图2中出现。
控制和引用。对于每个新项目,向DLL和OCX添加包含有过程、方法和你正在引用的其他代码的引用是十分重要的。选中Tools | References来激活References对话框。向下滚动,并选中Microsoft Agent Control 15。
下一步,确认Toolbox已通过单击或从View | Toolbox菜单中选中而激活。通过选中Tools | Additional Controls来激活Additional Controls对话框;找到阅读Microsoft Agent Control 15的行,并单击它的复选框。完成之后,你将看到Agent图标位于Toolbox的下半部分(见图3)。
下一步,我们要编写可以使Genie出现和消失的子程序。首先请单击顶部标签为Start Agent的按钮。你将看到Visual Basic IDE已经启动了CommandButton1_Click子程序。向顶部滚动,输入如下的语句:
Const DATAPATH = _
"C:\Program Files\Microsoft Agent\Characters\genieacs"
Dim Genie As IAgentCtlCharacter
Dim SpeakString As String
图4中列出了全部的代码。这些语句声明了必要的变量和常量。Microsoft建议在所列出的目录中安装Agent角色文件(ACS文件),但你也可以将它们放在其他地方--只要你为DATAPATH常量输入了正确的路径即可。
Option Explicit
Const DATAPATH = _
"C:\Program Files\Microsoft Agent\Characters\genieacs"
Dim Genie As IAgentCtlCharacter
Private Sub UserForm_Activate()
Agent1CharactersLoad "Genie", DATAPATH
Set Genie = Agent1Characters("Genie")
End Sub
Private Sub CommandButton1_Click()
GenieShow
GenieMoveTo 100, 100
GenieSpeak "My name is Genie Your wish is my command"
End Sub
Private Sub CommandButton2_Click()
GenieMoveTo 350, 250
GenieHide
End Sub
Private Sub UserForm_Deactivate()
Set Genie = Nothing
End Sub
图4 本代码阐述了基本的Genie控制
当UserForm被激活的时候,可以创建如下将被执行的代码:
Private Sub UserForm_Activate()
现在我们通知Agent对象将Genie 角色加载到它的Characters集合之中,这样我们就可以访问它了:
Agent1CharactersLoad "Genie", DATAPATH
下一步,使用Set语句来简化后面的代码:
Set Genie = Agent1Characters("Genie")
这不是必需的,但以后的语句需要精心编制。例如,需要如下语句来显示Agent:
Agent1Characters("Genie")Show
这样则更加直接:
GenieShow
下一行为SpeakString变量赋了一个值。在本例中,我们通知Microsoft Agent介绍它自己,然后为语音识别输入做准备(在本例中,我们不为该部分编写代码)。
SpeakString = "My name is Genie Your wish is my command"
让我们通过调用Genie并让它朗读SpeakString的值来完成代码。我们将编写CommandButton1_Click子程序来完成该项任务。Show是用来让用户可以看见Genie的命令,Speak将触发Microsoft的文字到语音转换工具朗读在它前面的文字。
Private Sub CommandButton1_Click()
GenieShow
GenieSpeak SpeakString
End Sub
CommandButton2_Click子程序将把Genie隐藏起来。
Private Sub CommandButton2_Click()
GenieHide
End Sub
最后,完成之后,我们必须通过使用如下语句来销毁Agent对象:
Private Sub UserForm_Deactivate()
Set Genie = Nothing
End Sub
现在你就可以准备启动Agent了。通过单击Run按钮,或按5键来测试一下,看看你的计算机是否已被正确设置了。该 *** 作将激活这个表单,Agent服务器将在加载表单的时候初始化,在用户退出表单的时候销毁。当按下Start Agent按钮的时候,Genie将出现并说:"My name is Genie Your wish is my command"(如图5所示)。它将在按下Stop Agent的时候消失。
因为我们正在从模型对话框中 *** 作Agent,所以这种实现并不是非常现实的,尽管它完全可用于示范或开发。下一步,我们将做一些更加有用的工作;我们将把Agent融入Word 97,并让Robby为我们朗读。
Agent'的第二个使命:为我朗读
目标是在Word 97中放置一个按钮,当按下它的时候,将调用将要大声朗读活动文档的Agent--这是从另一个侧面了解你的作品的好方法。
让我们从字符路径常量的声明开始:
Const ROBBYPATH = _
"C:\Program Files\Microsoft Agent\Characters\robbyacs"
用于Agent 和角色的变量为:
Dim MSAgent As Agent
Dim Char As Object
像以前一样,然后我们使用New关键字来创建一个Agent对象:
Set MSAgent = New Agent
在创建完Agent对象之后,我们必须启动Agent ActiveX服务器。为了实现这一点,我们将Agent对象的Connected属性设置为True:
MSAgentConnected = True
然后,我们加载字符并将它分配给Object变量:
MSAgentCharactersLoad "Robby", ROBBYPATH
Set Char = MSAgentCharacters("Robby")
准备工作就做完了。现在该轮到我们的Agent表现了。
He walk…
控制Agent的屏幕行为是很简单的。大部分 *** 作可以通过使用Character对象的Play函数来实现。Play函数有一个参数--一个由Animation字符串组成的字符串。例如,如下语句将导致Robby 挥手致意:
CharPlay "Wave"
而如下语句将导致他向右移动(Robby使用一个黑色背包移动):
CharPlay "MoveRight"
图6列出了一个用于Robby的Animation字符串的小子集,而图7到11则显示了其中的几个。正如你所看到的,Robby可以做很多动作。可提供的Animation字符串随角色的不同而不同,因此你需要获得有关每个你想使用的角色的资料。例如,在用于Robby 的Microsoft Agent Animations中,Robby有94个Animation字符串。
Animation描述
Acknowledge Nods head
Alert Straightens and raises eyebrows
Announce Prints output and reads
Blink Blinks eyes
Declines Raises hands and shakes head
DontRecognise Holds hand to ear
GestureLeft Gestures to the left
GestureRight Gestures to the right
GetAttention Raises and shakes arms
GlanceLeft Looks left briefly
GlanceRight Looks right briefly
Hear_1 Turns head left
Idle2_1 Crosses arms
Idle2_2 Removes head and makes adjustment
LookLeft Looks to the left
MoveUp Flies up
Processing Presses buttons in looping animation
Reading Reads in looping animation
Sad Makes sad expression
Searching Looks through toolbox in looping animation
Think Tilts head and scratches
Wave Waves
Write Takes out clipboard, writes and looks up
图6 为Robby角色选择Animation字符串的子集:共有94个
不过,使用Play,Robby将保留在相同的屏幕位置里。为了实际上在屏幕周围移动Agent,你可以使用Character对象的MoveTo过程,该过程有两个参数--x和 y屏幕坐标。下面是一个例子:
CharMoveTo 200, 300
如果你想让角色仍然移动到屏幕之上,可以在调用Show之后使用MoveTo;在第一次引用时,如果你想让角色出现在特定的位置,可以在调用Show之前使用MoveTo来放置Agent。既然我们已经知道如何创建Agent手势以及如何移动它,那么就让我们使Robby说话吧。
He Talks
让Robby说话也是很简单的;只需使用Character对象的Speak函数即可。Speak函数有一个参数--将要朗读的文字。文字可以有几种形式,包括文字串、文本文件或URL。在我们的例子中,我们想让Agent朗读一个Word文档,因此我们使用如下的语句:
CharSpeak ActiveDocumentContent
如果你做过任何Word 97 VBA编程,那么就会明白ActiveDocumentContent指的是ActiveDocument属性的Content属性,换句话说,就是当前选定的Word文档的主体文字。这条语句将导致Robby在文字气球中显示相关的文字的同时,大声朗读文档。多棒啊!
这条独立的语句是可以工作的,但是我们可以做得更好。步骤如下:
CharPlay "Read"
CharSpeak ActiveDocumentContent
CharPlay "Readreturn"
这几条语句将导致Robby从它的胸部打印出一些输出,在完成之后释放文档,以及在实际朗读之前开始阅读。"ReadReturn" Animation将导致Robby返回,在阅读之后停在中间位置。许多动画都与"Return"动画相关联,因此可以做到动作之间的平滑转换。
现在,让我们将所学到的东西融合在一起,为Robby将要完成的一个短的动作序列编写脚本。我们将把它放在一个脚本之中,以便可以从Word 97中调用它,如图12所示。
Option Explicit
Const ROBBYPATH =
"C:\Program Files\Microsoft Agent\Characters\robbyacs"
Dim MSAgent As Agent
Dim Char As Object
Sub Speak()
Set MSAgent = New Agent
MSAgentConnected = True
MSAgentCharactersLoad "Robby", ROBBYPATH
Set Char = MSAgentCharacters("Robby")
With Char
Top = 125
Left = 185
Show
Play "Greet"
Play "GreetReturn"
MoveTo 600, 400
Play "Read"
Speak ActiveDocumentContent
Play "ReadReturn"
Play "Idle2_2"
Play "Wave"
Play "WaveReturn"
Hide
End With
End Sub
图12 VBA代码让Robby在屏幕上特定的坐标位置出现,挥手致意说喂,飞向屏幕的右下角,朗读活动的Word 97文档,完成调整,挥手致意说再见,和消失。
下一步,我们必须在Word中做一点工作。
He Crawls on His Belly Like a Reptile
为了将新的宏与自定义的工具栏关联起来,请选择View | Toolbars | Customize来显示Customize对话框。单击New按钮。为新工具栏取名为"Agent",使其可以提供给Normaldot。这个工具栏现在就可以使用了。在Customize对话框中,单击Commands页并选中Macros。 NormalNewMacrosSpeak宏现在就应该可以使用了;将它拖向工具栏,然后在I光出现之后释放它。右击该按钮,将它的名字改为"Read",如果你喜欢的话,还可以为它提供一个图标。
通过返回到Customize对话框并再次选中该对象可以从菜单中调用新宏。这次,将它拖向Tools菜单(但不让它走)。这个菜单将打开并滚向底部。当你在自己希望的位置看到I光线之后,释放按钮。可以按照与以前相同的方式改变菜单项的属性--通过右击。
结论
我们已经介绍了Microsoft Agent的基础知识,并且列出了你探索Agent的潜力所需要的软件和硬件。然后我们继续利用Agent的语音功能来实现一个有用的Word宏来大声朗读文档。
记住Agent可以作为ActiveX提供也是十分重要的。这就意味着它可以使Web站点更加充满活力。例如,你可以访问位于>而是你服务器上的程序去访问其他网络页面时的USER_AGENT。
别人网站有些为了防止非浏览器的访问,防止被采集,就会做浏览器检测,检测user_agent
如果你不伪装,不设就采集不到了。
通常的访问是浏览器->网站,网站获得的是你的浏览器信息。
而你如果用些fopen,file_get_contents,socket之类的访问别人网站就是
对方的网站如果分析user_agent,发现是php,可能禁止你获取。
这时候你可以修改user_agent来伪造成浏览器请求。
是可下载的应用程序。
可使您完全了解戴尔服务器基础架构。
主动识别IT环境中的故障,还可以立即提醒您和戴尔启动问题解决流程。
SupportAssist节省了故障排除的时间,客户可以更多地关注战略项目。
提高生产效率-用自动化支持代替花费大量精力的人手日常维护。
洞察与控制-月度ProSupport Plus可以优化企业设备,个人电脑和平板的ProSupport Plus可以提供硬盘及电池问题预报。
Dell SupportAssist与Dell OpenManage Essentials系统管理控制台相集成,可远程监控您的企业环境并实现前瞻性支持。
戴尔强大且易于使用的支持技术可缩短解决问题所需的时间,并最大限度地减少人工干预,从而减少停机时间、提高工作效率,并恢复关键业务的运营。
这一新工具可提供丰富的功能,包括远程监控、自动化日志和配置数据收集、案例创建、故障通知以及部件更换。
转变为前瞻性支持模式并将资源的职能从维护转变为推动发展。
适用性:适用于Dell EqualLogic SAN HeadQuarters (SAN HQ)
OpenManage Essentials (OME)和Microsoft Systems Center Operations Manager (SCOM)控制台。
适用于Dell PowerEdge、Dell PowerVault、EqualLogic、Force10 S4810和Dell PowerConnect产品。
桌面UA即桌面用户代理,简称 UA(User Agent);作用是使得服务器能够识别客户使用的 *** 作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
一些网站常常通过判断 UA 来给不同的 *** 作系统、不同的浏览器发送不同的页面,因此可能造成某些页面无法在某个浏览器中正常显示,但通过伪装 UA 可以绕过检测。
由于很多网站在进行 UA 检测的时候忽略了两位数版本号,所以可能造成 浏览器及之后版本收到糟糕的页面,因此自 浏览器 10 之后的版本中浏览器标识项固定为 浏览器,在 UA 字串尾部添加真实版本信息。
扩展资料
user-agent字串格式:
Google Chrome 浏览器以 WebKit 作为呈现引擎,JavaScript 引擎却用了另一种。最初发布的版本是 02,它的 user-agent字串格式是在 webKit 信息的基础上又增加了如下:
Mozilla/50 (Platform; Encryption; OS-or-CPU; Language) AppleWebKit/AppleWebKitVersion (KHTML, like Gecko) Chrome/ChromeVersion Safari/SafariVersionChrome 02 user-agent 信息的示例如下:
Mozilla/50 (Windows; U; Windows NT 51; en-US) AppleWebKit/52513 (KHTML, like Gecko) Chrome/0214929 Safari/52513虽我不敢完全保证,但很可能 WebKit 版本和 Safari 版本总会保持同步。
参考资料来源:百度百科-User Agent
是默认开启的,网络故障第一时间是客户报障,不能全局发现问题,面向企业园区网络,还一款面向运营商的
SNMP架构:分为NMS和Agent两部分(agent读取内部MIB库)
国际标准定义:MIB2、RMON标准库
agent它是一个进程,主要负责信息采集读取、执行 *** 作,通知,帮助管理站获取信息
一、功能原理
二、工作原理
SNMP的结构包括:NMS网络管理站点、SNMP代理
SNMP规定了NMS和Agent之间如何传递管理信息的应用层协议
Agent只是进程,作用:执行 *** 作、通知
三、消息、版本
V1:三大 *** 作:Read、Write、Trap,Trap唯一是被管设备主动发起的
V2C:批量取数据,
V3:增加了身份验证和加密处理,增强网管安全设置,传输加密,权限控制
SNMP实际上是一个特殊的「要求/响应」协议,可支持两种要求讯息:
get及put,前者是用来从某些节点取出状态信息,而后者则是用来在某些节点上储存一份新的状态信息
通过NMS来更改设备上的配置,查询设备信息,发送的数据包为Get,更改设备的配置为Set(MIB相当于索引)
华为的SNMP的配置步骤
SNMP基本配置流程:
1、配置设备与NMS系统间通信正常(保证路由可达)
2、开启设备SNMP agent功能(缺少为开启)
3、配置snmp协议版本
4、配置设备snmp读写团体名
5、配置设备发送trap报文的参数信息
6、配置设备发送告警和错误码的目的主机
7、配置设备管理员的的位置
当初,人们在研究并发计算的过程中,为了刻划若干个同时处于执行过程中的计算单位,引入了"进程"的概念,并逐步形成了具有特定技术内涵的进程结构。当今,人们在研究分布计算的过程中发现,分布式系统中广泛存在着用已有的计算机概念难以准确描述的自主行为实体,于是引入了"Agent"的概念。因此研究Agent的体系结构成为分布计算领域的重要课题。
Agent的体系结构是指构造Agent的特殊方法学,它描述了组成Agent的基本成分及其作用、各成分的联系与交互机制、如何通过感知到的内外部状态确定Agent应采取的不同行动的算法,以及Agent的行为对其内部状态和外部环境的影响等等。目前,人们已提出的Agent的体系结构大致可分为以下三类。
1 审慎式体系结构(Deliberative Architecture)
该体系结构的特点是Agent中包含了显式表示的世界符号模型,Agent的决策是通过基于模板匹配和符号 *** 作的逻辑(或准逻辑)推理作出的,如同人们通过"深思熟虑"后作出决定一样,因此被称为审慎式的体系结构。该体系结构在(分布式)人工智能领域占主导地位。我们可以认为构造经典的基于知识的系统,就是按照这种体系结构构造Agent的雏形的。因此,也可以说该体系结构的存在与现代人工智能的历史一样长。
2 反应式体系结构(Reactive Architecture)
该体系结构的特点是Agent中包含了感知内外部状态变化的感知器、一组对相关事件作出反应的过程,和一个依据感知器激活某过程执行的控制系统,Agent的活动是由于受到内外部某种"刺激"而发生的,因此被称为反应式的体系结构。该体系结构在目前主流的分布式系统中占主导地位。本文列举的分布式应用中所涉及的Agent基本上是反应式体系结构。
我们甚至可以认为一个计算机基本系统,也是一个按照这种体系结构构造的Agent的雏形。
因此,也可以说该体系结构的存在与现代计算机系统的历史一样长。
3 混合式体系结构(Hybrid Architecture)
该体系结构的特点是Agent中包含了审慎式和反应式两个子系统,通常这两个子系统是分层次的,前者建立在后者的基础之上。这种体系结构的研究与实验目前在人工智能领域较为活跃,我们认为有关成果将对分布式系统中Agent应用功能的增强产生直接影响。例如,已经有研究工作在模拟飞行员的Agent中加入基于符号表示和推理的各种规划与决策能力,以提高模拟飞行员的适应性。
目前,我们正在研究开发一种具体的反应式Agent体系结构。在该结构中,Agent由事件处理系统、方法集和内部状态集三个主要成分构成。其中,事件处理系统是Agent的行为控制系统。Agent的活性表现为它的事件处理系统,在该Agent的生命期内始终持续自主地工作着。在该结构中,事件是与Agent有特定关联的特殊状态(如外部某服务请求到达、内部某特定状态被修改或超过设定的阈值等)。事件处理系统涉及事件感知、事件适配和事件处理分发3个环节的活动。Agent的事件感知器时刻捕捉其所关注的事件状态的出现,并根据事件状态的类型启动相应的事件适配器工作;事件适配器获取相关事件信息作识别,并将识别结果提交给相应的事件处理分发器,启动有关的事件处理方法执行。Agent的方法集体现了该Agent事件处理能力的成分,描述了Agent处理相关事件的方法。方法的执行由事件处理分发器引发,在其执行过程中可能影响Agent的内部状态,从而导致新事件的发生。Agent的内部状态集是表现该Agent当前状态的成分,其中包括表征事件的状态。在Agent的行为过程中,该Agent的内部状态可能会不断发生变化。
Agent之间的消息传递机制通过消息事件的处理实现。假设Agent A具有消息事件的处理能力,其接收服务请求的典型工作过程如下:一个传递给A的服务请求导致消息事件的发生。A的(消息)事件感知器将及时检测该事件的发生,从而引发A的(消息)事件适配器接收此消息;消息事件适配器按照Agent之间的消息传递协议,分析识别该消息为服务请求类型,进而引发A的(请求)事件处理分发器,并将有关适配信息提交给该分发器;(请求)事件处理分发器则根据适配信息选择相应的服务方法执行。
Agent的事件处理机制不仅可以有效地实现客户/服务器计算中传统的客户直接请求/服务器被动服务的机制,而且为实现Agent之间以及Agent与外部环境之间更为主动灵活的交互机制奠定了基础。例如,通过定义特定的故障事件,使担负系统管理的Agent能够主动向Manager报告关键故障的发生,甚至独自处理故障;通过定义特定的时钟事件,可以实现Agent之间以及Agent与用户之间的定时服务;通过定义特定的内部状态修改事件,实现Agent之间共有信息副本的一致性维护;通过定义特定的信息查询事件,使Agent在收到与查询相关的信息后,主动向信息需求者提供信息服务等等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)