merlin.acs的使用方法 merlin.acs添加右键菜单
閱讀全文:http://www.cckan.net/forum.php?mod=viewthread&tid=39
看看這個(gè)怎么樣吧
直接看代碼吧我就不多說(shuō)了
1.先下載一下這個(gè)控件 吧
網(wǎng)上多的是Google一下就可以下載的到了,文件名子是merlin.acs可能有2MB多點(diǎn),下載完成以后放在bin\Debug里就可以了
下面我們添加一個(gè)引有控件的名稱是Microsoft Agent Control 2.0
現(xiàn)在把我下面的程序就可以直接 用了
Codeusing?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Drawing;
using?System.Windows.Forms;
namespace?Yanshi
{
????public?class?FairyServers
????{
????????private?AgentObjects.Agent?MyController;
????????private?AgentObjects.IAgentCtlCharacter?MyCharacter;
????????private?Point?Location;
????????/**////?<summary>
????????///?加載時(shí)應(yīng)用
????????///?</summary>
????????public?void?load(int?X,int?Y)
????????{
????????????//初始化精靈對(duì)象?
????????????string?strpath?=?Application.StartupPath;
????????????MyController?=?new?AgentObjects.AgentClass();
????????????MyController.Connected?=?true;
????????????MyController.Characters.Load("merlin",?strpath?+?"\\merlin.acs");
????????????MyCharacter?=?MyController.Characters.Character("merlin");
????????????MyCharacter.MoveTo(System.Convert.ToInt16(Location.X?+?X),?System.Convert.ToInt16(Location.Y?+?Y),?null);
????????????MyCharacter.Show(null);
????????????//this.Speak("歡迎大家來(lái)到伙伴宿舍管理系統(tǒng)!!!");//開(kāi)始說(shuō)話
????????????//this.Congratulate_2();//拍手稱贊?
????????????//this.Announce();?//吹廣播號(hào)
????????????//this.stop();?//停止
????????}
????????/**////?<summary>
????????///?清楚
????????///?</summary>
????????public?void?Clear()
????????{
????????????this.MyCharacter.StopAll(null);
????????}
????????/**////?<summary>
????????///?向右看
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個(gè)動(dòng)作True為是False為不是</param>
????????public?void?GestureLeft(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("GestureLeft");
????????}
????????/**////?<summary>
????????///?祝賀
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個(gè)動(dòng)作True為是False為不是</param>
????????public?void?Congratulate(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Congratulate");
????????}
????????/**////?<summary>
????????///?驚訝
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個(gè)動(dòng)作True為是False為不是</param>
????????public?void?Surprised(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Surprised");
????????}
????????/**////?<summary>
????????///?解釋
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個(gè)動(dòng)作True為是False為不是</param>
????????public?void?Explain(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Explain");
????????}
????????/**////?<summary>
????????///?稱贊
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個(gè)動(dòng)作True為是False為不是</param>
????????public?void?Congratulate_2(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Congratulate_2");
????????}
????????/**////?<summary>
????????///?注意
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個(gè)動(dòng)作True為是False為不是</param>
????????public?void?GetAttentionReturn(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("GetAttentionReturn");
????????}
????????/**////?<summary>
????????///?揮手
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個(gè)動(dòng)作True為是False為不是</param>
????????public?void?Wave(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Wave");
????????}
????????/**////?<summary>
????????///?廣播
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個(gè)動(dòng)作True為是False為不是</param>
????????public?void?Announce(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Announce");
????????}
????????/**////?<summary>
????????///?建議
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個(gè)動(dòng)作True為是False為不是</param>
????????public?void?Suggest(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Suggest");
????????}
????????/**////?<summary>
????????///?反對(duì)
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個(gè)動(dòng)作True為是False為不是</param>
????????public?void?DontRecognize(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("DontRecognize");
????????}
????????/**////?<summary>
????????///?隱藏默林精靈
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個(gè)動(dòng)作True為是False為不是</param>
????????public?void?stop(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Hide(null);
????????}
????????/**////?<summary>
????????///?演示說(shuō)話效果
????????///?</summary>
????????///?<param?name="strWrite">說(shuō)話的內(nèi)容</param>
????????///?<param?name="isTrue">是否停止上一個(gè)動(dòng)作True為是False為不是</param>
????????public?void?Speak(string?strWrite,?Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????MyCharacter.Speak(strWrite,?null);
????????}
????????/**////?<summary>
????????///?寫字
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個(gè)動(dòng)作True為是False為不是</param>
????????public?void?Write(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Write");
????????}
????}
}
在這里是我能想到的動(dòng)作
?
?
action[0]=" Acknowledge "; //承認(rèn)
action[1]=" LookDown "; //向下看
action[2]=" Sad "; //悲傷
action[3]=" Alert "; //警告
action[4]=" LookDownBlink "; //向下看眨眼
action[5]=" Search "; //尋找
action[6]=" Announce "; //聲明
action[7]=" LookUp "; //向上看
action[8]=" StartListening "; //開(kāi)始聆聽(tīng)
action[9]=" Blink "; //眨眼
action[10]=" LookUpBlink "; //向下看眨眼
action[11]=" StopListening "; //停止聆聽(tīng)
action[12]=" Confused "; //迷惑
action[13]=" LookLeft "; //向左看
action[14]=" Suggest "; //建議
action[15]=" Congratulate "; //祝賀
action[16]=" LookLeftBlink "; //向左看眨眼
action[17]=" Surprised "; //吃驚
action[18]=" Declines "; //拒絕
action[19]=" LookRight "; //向右看
action[20]=" Think "; //思考
action[21]=" DontRecognize "; //不承認(rèn)
action[22]=" LookRightBlink "; //向右看眨眼
action[23]=" Wave "; //揮動(dòng)
action[24]=" Explain "; //解釋
action[25]=" MoveDown "; //向下移動(dòng)
action[26]=" Write "; //書寫
action[27]=" GestureDown "; //向下姿勢(shì)
action[28]=" MoveUp "; //向上移動(dòng)
action[29]=" Processing "; //計(jì)算
action[30]=" GestureUp "; //向上姿勢(shì)
action[31]=" MoveRight "; //向右移動(dòng)
action[32]=" Reading "; //閱讀
action[33]=" GestureLeft "; //向左姿勢(shì)
action[34]=" MoveLeft "; //向左移動(dòng)
action[35]=" Searching "; //尋找
action[36]=" GestureRight "; //向右姿勢(shì)
action[37]=" Pleased "; //高興
action[38]=" Writing "; //書寫
action[39]=" GetAttention "; //獲得注意
action[40]=" Read "; //閱讀
action[41]=" Greet "; //問(wèn)候
?
?
?
這里是怎么樣添加右鍵菜單 的
?
Code寫在前面:AgentObject是很好玩的東西,像office2007之前的版本都有這個(gè)小精靈,用來(lái)show的話,是不錯(cuò)的。但是它是com的組件,要使用這個(gè)組件就必須要了解一定的接口知識(shí)。這就是問(wèn)題所在,因?yàn)檎{(diào)試又不方法,實(shí)在是好煩的。下面介紹一個(gè)簡(jiǎn)單的方法使用AgentObject,并可以增加小精靈右鍵的菜單。
初始化控件
.net對(duì)之前的技術(shù)是有打包的,也就是說(shuō)com組件的使用一點(diǎn)問(wèn)題也沒(méi)有。那我們就使用最簡(jiǎn)單的方法來(lái)設(shè)置com組件,也就是拖控件的辦法。這也是最好使的,如果不使用拖控件的辦法,如果你在設(shè)置的過(guò)程中發(fā)現(xiàn)了不可解決的問(wèn)題,你會(huì)很頭大的。
也就是很建一個(gè)UserControl,然后調(diào)出工具箱,添加項(xiàng),選中Com組件,然后是Microsoft?Agent?Control。這樣,工具箱就多出了這個(gè)控件,你可以把它拖出來(lái)。
這樣,new的動(dòng)作就完成了,你會(huì)發(fā)現(xiàn)你的項(xiàng)目引入了新的dll兩個(gè)。一個(gè)是源com組件,一個(gè)是經(jīng)過(guò).net打包的控件。這個(gè)經(jīng)過(guò).net打包的控件,如果不是拖放控件,你怎么也找不到的。Dll的名稱是AxInterop.AgentObjects。
效果圖
下面的方法,可以為Agentobject增加右鍵菜單。
?
使用AgentObject
使用時(shí),可以參考下面的代碼
????public?partial?class?AgentControl?:?UserControl
????{
????????private?AgentObjects.IAgentCtlCharacter?axAgent1Character?=?null;
????????public?AgentControl()
????????{
????????????InitializeComponent();
????????}
????????private?void?AgentControl_Load(object?sender,?EventArgs?e)
????????{
????????????axAgent1.Connected?=?true;
????????????axAgent1.Characters.Load("merlin",?"merlin.ACS");
????????????axAgent1Character?=?(AgentObjects.IAgentCtlCharacter)axAgent1.Characters["merlin"];
????????????axAgent1Character.Commands.Add("MessageBox",?"彈出消息框",?"",?true,?true);
????????????axAgent1.Show();
????????????axAgent1.Command?+=?new?AxAgentObjects._AgentEvents_CommandEventHandler(axAgent1_Command);
????????}
????????void?axAgent1_Command(object?sender,?AxAgentObjects._AgentEvents_CommandEvent?e)
????????{
????????????AgentObjects.IAgentCtlUserInput?_userInput?=?((AgentObjects.IAgentCtlUserInput)e.userInput);
????????????if?(_userInput.Name?==?"MessageBox")
????????????{
????????????????MessageBox.Show("彈出消息框",?"axAgent1提示");
????????????}
????????}
}
這里就是使用的方法,而調(diào)用時(shí)就直接new這個(gè)控件就可以了。這個(gè)AgentObject自然就會(huì)被加載了。
呵呵,真是好簡(jiǎn)單的。
????????private?void?Form1_Load(object?sender,?EventArgs?e)
????????{
????????????AgentObjectsTest.AgentControl?_control?=?new?AgentControl();????????????
????????}
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/sufei/archive/2009/03/14/1485988.html
總結(jié)
以上是生活随笔為你收集整理的merlin.acs的使用方法 merlin.acs添加右键菜单的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: type A1使用
- 下一篇: [原创]3DS MAX PlugIn 1