日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

merlin.acs的使用方法 merlin.acs添加右键菜单

發布時間:2025/3/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

現在把我下面的程序就可以直接 用了

Code
using?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添加右键菜单的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。