- 工具箱中-选择项,com组件中选择microsoft agent control 2.0组件
将microsoft agent control控件添加到窗体上(在程序运行时是看不到窗体是的microsoft agent控件的,只有在设计界面时它才显示出来)
- 增加using AgentObjects;添加全局private IAgentCtlCharacterEx Character;//这个就是我们要操作的对象咯
- 不想多说,把自己的所有测试代码贴出来(win7已经不支持了要下载补丁)其他可以看http://blog.csdn.net/luyifeiniu/article/details/5646744挺好
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using AgentObjects;
namespace win1
{
public partial class Form1 : Form
{
private IAgentCtlCharacterEx Character;
public Form1()
{
InitializeComponent();
start();
}
private void start()
{
axAgent1.Characters.Load("Genie", (object)"merlin.ACS");//导入吉尼这个精灵
Character = axAgent1.Characters["Genie"];
Character.LanguageID = 0x409;//把语言设置为英语,这里不能是中文
// Character.LanguageID = 0x804;//把语言设置为英语,这里不能是中文
Character.Show(0);//显示精灵
Character.Speak("like", null);
Character.Play("Wave");
Character.Commands.Add("谢谢", "谢谢", "谢谢", true, true);
Character.Commands.Add("退出", "退出", "退出", true, true);
Character.AutoPopupMenu = false;
Character.Commands.Add("Hello", "Hello", "Hello", true, true);
Character.Commands.Add("Hellox", (object)"Say Hello", (object)"([say](hello | hi) | good (day | morning | evening))", (object)true, (object)true);
Character.Commands.Add("Goodbye", (object)"Goodbye", (object)"(bye | goodbye | exit | close | quit)", (object)true, (object)true);
Character.MoveTo(500, 500, 1);
Character.Play("Restpose");
Character.Play("Explain");
}
private void Form1_Load(object sender, EventArgs e)
{
//UserControl1 dd = new UserControl1();
}
private void axAgent1_ClickEvent(object sender, AxAgentObjects._AgentEvents_ClickEvent e)
{
if (e.button == 2)
{
// MessageBox.Show("测试");
contextMenuStrip1.Show(MousePosition);
}
else
{
contextMenuStrip1.Hide();
}
}
以下是定义右键的菜单的功能
private void axAgent1_Command_1(object sender, AxAgentObjects._AgentEvents_CommandEvent e)
{
IAgentCtlUserInput ui;
ui = (IAgentCtlUserInput)e.userInput;
if (ui.Name == "退出")
{
Character.Speak("goodbye", null);
Application.ExitThread();
}
else
{
Character.Speak("please chouse the menu", null);
}
}
private void axAgent1_Move(object sender, EventArgs e)
{
contextMenuStrip1.Hide();
}
private void 谢谢ToolStripMenuItem_Click(object sender, EventArgs e)
{
Character.Hide(1);
Character.AutoPopupMenu = true;
}
private void 死ToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.ExitThread();
}
private void 伤ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.ShowDialog();
}
private void 好ToolStripMenuItem_Click(object sender, EventArgs e)
{
// Character.Speak("i like you,do you like me!", "d:\\sample.mid");//LoopyMusic.wav
string str = System.Environment.CurrentDirectory;
Character.Speak("do、do、do da da da !",str+"\\LoopyMusic.wav");//LoopyMusic.wav
}
private void 不好ToolStripMenuItem_Click(object sender, EventArgs e)
{
Character.Speak("谢谢", null);
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using AgentObjects;
namespace win1
{
public partial class Form1 : Form
{
private IAgentCtlCharacterEx Character;
public Form1()
{
InitializeComponent();
start();
}
private void start()
{
axAgent1.Characters.Load("Genie", (object)"merlin.ACS");//导入吉尼这个精灵
Character = axAgent1.Characters["Genie"];
Character.LanguageID = 0x409;//把语言设置为英语,这里不能是中文
// Character.LanguageID = 0x804;//把语言设置为英语,这里不能是中文
Character.Show(0);//显示精灵
Character.Speak("like", null);
Character.Play("Wave");
Character.Commands.Add("谢谢", "谢谢", "谢谢", true, true);
Character.Commands.Add("退出", "退出", "退出", true, true);
Character.AutoPopupMenu = false;
Character.Commands.Add("Hello", "Hello", "Hello", true, true);
Character.Commands.Add("Hellox", (object)"Say Hello", (object)"([say](hello | hi) | good (day | morning | evening))", (object)true, (object)true);
Character.Commands.Add("Goodbye", (object)"Goodbye", (object)"(bye | goodbye | exit | close | quit)", (object)true, (object)true);
Character.MoveTo(500, 500, 1);
Character.Play("Restpose");
Character.Play("Explain");
}
private void Form1_Load(object sender, EventArgs e)
{
//UserControl1 dd = new UserControl1();
}
private void axAgent1_ClickEvent(object sender, AxAgentObjects._AgentEvents_ClickEvent e)
{
if (e.button == 2)
{
// MessageBox.Show("测试");
contextMenuStrip1.Show(MousePosition);
}
else
{
contextMenuStrip1.Hide();
}
}
以下是定义右键的菜单的功能
private void axAgent1_Command_1(object sender, AxAgentObjects._AgentEvents_CommandEvent e)
{
IAgentCtlUserInput ui;
ui = (IAgentCtlUserInput)e.userInput;
if (ui.Name == "退出")
{
Character.Speak("goodbye", null);
Application.ExitThread();
}
else
{
Character.Speak("please chouse the menu", null);
}
}
private void axAgent1_Move(object sender, EventArgs e)
{
contextMenuStrip1.Hide();
}
private void 谢谢ToolStripMenuItem_Click(object sender, EventArgs e)
{
Character.Hide(1);
Character.AutoPopupMenu = true;
}
private void 死ToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.ExitThread();
}
private void 伤ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.ShowDialog();
}
private void 好ToolStripMenuItem_Click(object sender, EventArgs e)
{
// Character.Speak("i like you,do you like me!", "d:\\sample.mid");//LoopyMusic.wav
string str = System.Environment.CurrentDirectory;
Character.Speak("do、do、do da da da !",str+"\\LoopyMusic.wav");//LoopyMusic.wav
}
private void 不好ToolStripMenuItem_Click(object sender, EventArgs e)
{
Character.Speak("谢谢", null);
}
}
}