merlin.acs的使用方法 merlin.acs添加右键菜单
閱讀全文:http://www.cckan.net/forum.php?mod=viewthread&tid=39
看看這個怎么樣吧
直接看代碼吧我就不多說了
1.先下載一下這個控件 吧
網上多的是Google一下就可以下載的到了,文件名子是merlin.acs可能有2MB多點,下載完成以后放在bin\Debug里就可以了
下面我們添加一個引有控件的名稱是Microsoft Agent Control 2.0
現在把我下面的程序就可以直接 用了
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>
????????///?加載時應用
????????///?</summary>
????????public?void?load(int?X,int?Y)
????????{
????????????//初始化精靈對象?
????????????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("歡迎大家來到伙伴宿舍管理系統!!!");//開始說話
????????????//this.Congratulate_2();//拍手稱贊?
????????????//this.Announce();?//吹廣播號
????????????//this.stop();?//停止
????????}
????????/**////?<summary>
????????///?清楚
????????///?</summary>
????????public?void?Clear()
????????{
????????????this.MyCharacter.StopAll(null);
????????}
????????/**////?<summary>
????????///?向右看
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個動作True為是False為不是</param>
????????public?void?GestureLeft(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("GestureLeft");
????????}
????????/**////?<summary>
????????///?祝賀
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個動作True為是False為不是</param>
????????public?void?Congratulate(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Congratulate");
????????}
????????/**////?<summary>
????????///?驚訝
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個動作True為是False為不是</param>
????????public?void?Surprised(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Surprised");
????????}
????????/**////?<summary>
????????///?解釋
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個動作True為是False為不是</param>
????????public?void?Explain(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Explain");
????????}
????????/**////?<summary>
????????///?稱贊
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個動作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">是否停止上一個動作True為是False為不是</param>
????????public?void?GetAttentionReturn(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("GetAttentionReturn");
????????}
????????/**////?<summary>
????????///?揮手
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個動作True為是False為不是</param>
????????public?void?Wave(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Wave");
????????}
????????/**////?<summary>
????????///?廣播
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個動作True為是False為不是</param>
????????public?void?Announce(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Announce");
????????}
????????/**////?<summary>
????????///?建議
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個動作True為是False為不是</param>
????????public?void?Suggest(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Suggest");
????????}
????????/**////?<summary>
????????///?反對
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個動作True為是False為不是</param>
????????public?void?DontRecognize(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("DontRecognize");
????????}
????????/**////?<summary>
????????///?隱藏默林精靈
????????///?</summary>
????????///?<param?name="isTrue">是否停止上一個動作True為是False為不是</param>
????????public?void?stop(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Hide(null);
????????}
????????/**////?<summary>
????????///?演示說話效果
????????///?</summary>
????????///?<param?name="strWrite">說話的內容</param>
????????///?<param?name="isTrue">是否停止上一個動作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">是否停止上一個動作True為是False為不是</param>
????????public?void?Write(Boolean?isTrue)
????????{
????????????if?(isTrue)
????????????{
????????????????this.MyCharacter.StopAll(null);
????????????}
????????????this.MyCharacter.Play("Write");
????????}
????}
}
在這里是我能想到的動作
?
?
action[0]=" Acknowledge "; //承認
action[1]=" LookDown "; //向下看
action[2]=" Sad "; //悲傷
action[3]=" Alert "; //警告
action[4]=" LookDownBlink "; //向下看眨眼
action[5]=" Search "; //尋找
action[6]=" Announce "; //聲明
action[7]=" LookUp "; //向上看
action[8]=" StartListening "; //開始聆聽
action[9]=" Blink "; //眨眼
action[10]=" LookUpBlink "; //向下看眨眼
action[11]=" StopListening "; //停止聆聽
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 "; //不承認
action[22]=" LookRightBlink "; //向右看眨眼
action[23]=" Wave "; //揮動
action[24]=" Explain "; //解釋
action[25]=" MoveDown "; //向下移動
action[26]=" Write "; //書寫
action[27]=" GestureDown "; //向下姿勢
action[28]=" MoveUp "; //向上移動
action[29]=" Processing "; //計算
action[30]=" GestureUp "; //向上姿勢
action[31]=" MoveRight "; //向右移動
action[32]=" Reading "; //閱讀
action[33]=" GestureLeft "; //向左姿勢
action[34]=" MoveLeft "; //向左移動
action[35]=" Searching "; //尋找
action[36]=" GestureRight "; //向右姿勢
action[37]=" Pleased "; //高興
action[38]=" Writing "; //書寫
action[39]=" GetAttention "; //獲得注意
action[40]=" Read "; //閱讀
action[41]=" Greet "; //問候
?
?
?
這里是怎么樣添加右鍵菜單 的
?
Code寫在前面:AgentObject是很好玩的東西,像office2007之前的版本都有這個小精靈,用來show的話,是不錯的。但是它是com的組件,要使用這個組件就必須要了解一定的接口知識。這就是問題所在,因為調試又不方法,實在是好煩的。下面介紹一個簡單的方法使用AgentObject,并可以增加小精靈右鍵的菜單。
初始化控件
.net對之前的技術是有打包的,也就是說com組件的使用一點問題也沒有。那我們就使用最簡單的方法來設置com組件,也就是拖控件的辦法。這也是最好使的,如果不使用拖控件的辦法,如果你在設置的過程中發現了不可解決的問題,你會很頭大的。
也就是很建一個UserControl,然后調出工具箱,添加項,選中Com組件,然后是Microsoft?Agent?Control。這樣,工具箱就多出了這個控件,你可以把它拖出來。
這樣,new的動作就完成了,你會發現你的項目引入了新的dll兩個。一個是源com組件,一個是經過.net打包的控件。這個經過.net打包的控件,如果不是拖放控件,你怎么也找不到的。Dll的名稱是AxInterop.AgentObjects。
效果圖
下面的方法,可以為Agentobject增加右鍵菜單。
?
使用AgentObject
使用時,可以參考下面的代碼
????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提示");
????????????}
????????}
}
這里就是使用的方法,而調用時就直接new這個控件就可以了。這個AgentObject自然就會被加載了。
呵呵,真是好簡單的。
????????private?void?Form1_Load(object?sender,?EventArgs?e)
????????{
????????????AgentObjectsTest.AgentControl?_control?=?new?AgentControl();????????????
????????}
?
?
轉載于:https://www.cnblogs.com/sufei/archive/2009/03/14/1485988.html
總結
以上是生活随笔為你收集整理的merlin.acs的使用方法 merlin.acs添加右键菜单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: type A1使用
- 下一篇: [原创]3DS MAX PlugIn 1