首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

VC++ 整合 Microsoft Agent 打造互動式動畫助手:從載入角色到自定義動作全流程

     編輯:關於VC++

Office 97/2000 的「大眼俠」辦公助手讓許多開發者印象深刻。微軟將此技術封裝為 Microsoft Agent (ActiveX),支援中文、語音輸出、豐富動畫與互動。本文示範在 VC++ 6.0 對話框專案中整合 Agent,載入角色「James」,實現歡迎、思考、讀寫等動作觸發,附完整原始碼。

環境準備

  1. 下載安裝 msagent.exe (微軟官網)。
  2. 下載角色檔 James.acs (msagentring.org) 安裝至 C:\WINDOWS\msagent\chars\。

專案整合步驟

1. 新建 MFC 對話框專案 MyAgent

2. 插入 ActiveX 控件

資源視圖 → 對話框右鍵 →「插入 ActiveX 控件」→ 選擇 Microsoft Agent Control 2.0。
插入 Agent 控件

3. 類向導添加成員變數

// 對話框頭文件
#include "agentctlcharacters.h"
#include "agentctlcharacterex.h"
#include "agentctlrequest.h"

CAgentCtlEx m_sysAgent;           // 主控件
CAgentCtlCharacters m_Characters; // 角色集合
CAgentCtlCharacterEx m_Ex;        // 單一角色
CAgentCtlRequest m_Request;       // 非同步請求

4. 初始化載入角色

BOOL CMyAgentDlg::OnInitDialog() {
    CDialog::OnInitDialog();
    COleVariant vZero("0");
    m_Characters = m_sysAgent.GetCharacters();
    // 載入 James.acs
    m_Request = m_Characters.Load("Jame", COleVariant("C:\\WINDOWS\\msagent\\chars\\James.acs"));
    m_Ex = m_Characters.Character("Jame");
    m_Ex.Show(vZero);  // 顯示角色
    return TRUE;
}

5. 關閉時卸載

void CMyAgentDlg::OnDestroy() {
    m_Characters.Unload("Jame");
    CDialog::OnDestroy();
}

6. 控制動畫與語音

核心方法:

  • m_Ex.Show()/Hide() 顯示/隱藏
  • m_Ex.Speak(L"歡迎使用本系統!") 語音輸出(支援 TTS)
  • m_Ex.Play(L"Greet") 播放預定義動畫

James 角色支援動作(部分):

動作名稱含義
Greet問候
Acknowledge確認/點頭
Alert警告
Announce宣佈
Blink眨眼
Confused困惑
Congratulate祝賀
Decline拒絕
Explain解釋
LookDown/LookUp向下/向上看
MoveLeft/MoveRight/MoveDown移動
Read/Write閱讀/書寫
Search搜尋
RestPose恢復待機姿態
Think思考

運行效果

Agent 助手運行截圖

進階應用方向

  • 語音辨識輸入 (IAgentSpeechRecognition)
  • 多角色切換、佈局管理
  • 結合應用程式邏輯:錯誤提示→Alert、操作引導→Explain、長時間運算→Think
  • 角色檔 .acf (多結構) 支援更豐富動畫

環境:Windows XP + VC++ 6.0 編譯通過。完整原始碼附件下載。更多角色與文檔請訪問 MSDN Agent 專區。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved