⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 电脑编程技巧和源码。很不错的。
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,AgentServerObjects_TLB,ActiveX,
  StdCtrls,ComObj;

type
  TSink=Class(TAutoIntfObject,IAgentNotifySink)
    procedure Command(dwCommandID: Integer; const punkUserInput: IUnknown); safecall;
    procedure ActivateInputState(dwCharID: Integer; bActivated: Integer); safecall;
    procedure Restart; safecall;
    procedure Shutdown; safecall;
    procedure VisibleState(dwCharID: Integer; bVisible: Integer; dwCause: Integer); safecall;
    procedure Click(dwCharID: Integer; fwKeys: Smallint; x: Integer; y: Integer); safecall;
    procedure DblClick(dwCharID: Integer; fwKeys: Smallint; x: Integer; y: Integer); safecall;
    procedure DragStart(dwCharID: Integer; fwKeys: Smallint; x: Integer; y: Integer); safecall;
    procedure DragComplete(dwCharID: Integer; fwKeys: Smallint; x: Integer; y: Integer); safecall;
    procedure RequestStart(dwRequestID: Integer); safecall;
    procedure RequestComplete(dwRequestID: Integer; hrStatus: Integer); safecall;
    procedure BookMark(dwBookMarkID: Integer); safecall;
    procedure Idle(dwCharID: Integer; bStart: Integer); safecall;
    procedure Move(dwCharID: Integer; x: Integer; y: Integer; dwCause: Integer); safecall;
    procedure Size(dwCharID: Integer; lWidth: Integer; lHeight: Integer); safecall;
    procedure BalloonVisibleState(dwCharID: Integer; bVisible: Integer); safecall;
  end;

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure FormShow(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    Capture:BOOLEAN;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  IAgentEx1:IAgentEx;
  IAgentCharacterEx1:IAgentCharacterEx;
  CharID:Integer;
  SinkID:Integer;
  sink:TSink;
  ISink:IAgentNotifySink;
  I1:ITypeLib;
  CmdIndex:array[0..3] of Integer;

implementation



{$R *.DFM}

procedure TSink.Command(dwCommandID: Integer; const punkUserInput: IUnknown);
var
 REqId:Integer;
begin
 if dwCommandID=cmdIndex[0] then
  IAgentCharacterEx1.Speak('You select Action1','',ReqId);
 if dwCommandID=cmdIndex[1] then
  IAgentCharacterEx1.Speak('You select Action2','',ReqId);
 if dwCommandID=cmdIndex[2] then
  IAgentCharacterEx1.Speak('You select Action3','',ReqId);

end;

procedure TSink.ActivateInputState(dwCharID: Integer; bActivated: Integer);
begin
end;
procedure TSink.Restart;
begin
end;
procedure TSink.Shutdown;
begin
end;
procedure TSink.VisibleState(dwCharID: Integer; bVisible: Integer; dwCause: Integer);
begin
end;
procedure TSink.Click(dwCharID: Integer; fwKeys: Smallint; x: Integer; y: Integer);
var
 ReqId:Integer;
begin
 IAgentCharacterEx1.Speak(' You clicked me ','',ReqId);
end;
procedure TSink.DblClick(dwCharID: Integer; fwKeys: Smallint; x: Integer; y: Integer);
var
 ReqId:Integer;
begin
 IAgentCharacterEx1.Speak(' You Double Clicked on Me','',ReqId);
end;
procedure TSink.DragStart(dwCharID: Integer; fwKeys: Smallint; x: Integer; y: Integer);
begin
end;
procedure TSink.DragComplete(dwCharID: Integer; fwKeys: Smallint; x: Integer; y: Integer);
begin
end;
procedure TSink.RequestStart(dwRequestID: Integer);
begin
end;
procedure TSink.RequestComplete(dwRequestID: Integer; hrStatus: Integer);
begin
end;
procedure TSink.BookMark(dwBookMarkID: Integer);
begin
end;
procedure TSink.Idle(dwCharID: Integer; bStart: Integer);
begin
end;
procedure TSink.Move(dwCharID: Integer; x: Integer; y: Integer; dwCause: Integer);
begin
end;
procedure TSink.Size(dwCharID: Integer; lWidth: Integer; lHeight: Integer);
begin
end;
procedure TSink.BalloonVisibleState(dwCharID: Integer; bVisible: Integer);
begin
end;

procedure TForm1.FormShow(Sender: TObject);
var
 ReqId:integer;

begin
 CoCreateInstance(CLASS_AgentServer,nil,CLSCTX_ALL,IAgentEx,IAgentEx1);
 OleCheck(LoadRegTypeLib(LIBID_AgentServerObjects,2,0,0,I1));
 Sink:=TSink.Create(I1,IID_IAgentNotifySink);
 ISink:=Sink As IAgentNotifySink;
 IAgentEx1.Load('Merlin.acs',CharId,ReqID);
 IAgentEx1.GetCharacterEx(CharId,IAgentCharacterEx1);
 IAgentEx1.Register(ISink,SinkID);
 IAgentCharacterEx1.SetSoundEffectsOn(1);
 IAgentCharacterEx1.SetLanguageID($0409);
 IAgentCharacterEx1.show(0,ReqId);
 IAgentCharacterEx1.Speak('Hello! I am here!','',ReqId);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 IAgentEx1.Unregister(SinkID);
 IAgentEx1.Unload(CharId);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 IAgentPropertySheet1:IAgentPropertySheet;
begin
 IAgentPropertySheet1:=IAgentEx1 As IAgentPropertySheet;
 IAgentPropertySheet1.SetVisible(1);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 IAgentCommandsEx1:IAgentCommandsEx;
 pwdid:Integer;
begin
 IAgentCommandsEx1:=IAgentCharacterEx1 As IAgentCommandsEx;
 IAgentCommandsEx1.AddEx('Action1','Voice1','VoiceCaption1',1,1,0,pwdid);
 CmdIndex[0]:=pwdid;
 IAgentCommandsEx1.AddEx('Action2','Voice2','VoiceCaption2',1,1,0,pwdid);
 CmdIndex[1]:=pwdid;
 IAgentCommandsEx1.AddEx('Action3','Voice3','VoiceCaption3',1,1,0,pwdid);
 CmdIndex[2]:=pwdid;
 Button2.Enabled:=false;

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -