Dim oSH Dim StrDoss,StrFich Dim GUILLEMET Dim oArgs ' * Agent Object Dim AgentControl ' * Character Objects Dim Merlin ' * Variables Dim UsedChars Dim MerlinID Dim MerlinACS Dim MerlinLoaded Dim HideReq Dim Req Dim ScriptComplete Dim MerlinLeftX, MerlinCenterX, MerlinRightX Dim MerlinTopY, MerlinCenterY, MerlinBottomY ' * Initialize UsedChars = "Merlin" ' * Merlin MerlinID = "Merlin" MerlinACS = "merlin.acs" MerlinLoaded = False ScriptComplete = False Call Main AgentControl.application.quit() Merlin.application.quit Function AgentInstalled() ' Purpose: Returns True if Agent 2.0 is installed, else False On Error Resume Next If ScriptEngineMajorVersion < 2 Then AgentInstalled = False Else Set AgentControl = WScript.CreateObject("Agent.Control.2", "AgentControl_") AgentInstalled = IsObject(AgentControl) End If End Function Sub Main() On Error Resume Next ' * INSERT ANY NON-AGENT RELATED SCRIPTING HERE If Not AgentInstalled() Then Exit Sub End If AgentControl.Connected = True MerlinLoaded = LoadLocalAgent(MerlinID, MerlinACS) If MerlinLoaded Then Call SetCharObj Call AgentIntro Call AgentSuite Else Call LoadError End If End Sub Function LoadLocalAgent(ByVal CharID, ByVal CharACS) ' Purpose: Attempts to load the specified character ' Returns: True if successful, False if not On Error Resume Next AgentControl.Characters.Load CharID, CharACS If Err = 0 Then LoadLocalAgent = True Exit Function End If LoadLocalAgent = False End Function Sub SetCharObj() ' Purpose: Sets the character reference and TTS Language ID On Error Resume Next Set Merlin = AgentControl.Characters(MerlinID) Merlin.LanguageID = &H40C End Sub Sub AgentControl_RequestComplete(ByVal RequestObject) ' Purpose: Take action on completion or failure of requests On Error Resume Next If RequestObject <> EndReq Then Else If Not Merlin.Visible Then ' Trigger the Script to Close ScriptComplete = True Else ' It is up to the user to close the script, by right-clicking ' the character and selecting 'Exit' End If End If If RequestObject <> HideReq Then Else AgentControl.Characters.Unload MerlinID ScriptComplete = True End If End Sub Sub LoadError() Dim strMsg strMsg = "Error Loading Character: " & MerlinID strMsg = strMsg & Chr(13) & Chr(13) & "This Microsoft Agent Script requires the character(s):" strMsg = strMsg & Chr(13) & UsedChars MsgBox strMsg, 48 End Sub Sub AgentControl_Click(ByVal CharacterID, ByVal Button, ByVal Shift, ByVal X, ByVal Y) End Sub Sub AgentControl_DblClick(ByVal CharacterID, ByVal Button, ByVal Shift, ByVal X, ByVal Y) ' Purpose: Stop and Hide all characters on double-click On Error Resume Next Merlin.StopAll If Not MerlinID.HasOtherClients Then If Merlin.Visible Then Set HideReq = Merlin.Hide() Else AgentControl.Characters.Unload MerlinID ScriptComplete = True End If End If End Sub Sub GetScreenPositions() On Error Resume Next Dim ScreenWidth Dim ScreenHeight ScreenWidth = 0 ScreenHeight = 0 ''''ScreenWidth = ??? HOW TO GET SCREEN WIDTH IN WSCRIPT ??? ''''ScreenHeight = ??? HOW TO GET SCREEN HEIGHT IN WSCRIPT ??? If ScreenWidth = 0 Or ScreenHeight = 0 Then ScreenWidth = 800 ScreenHeight = 600 End If MerlinCenterX = ScreenWidth \ 2 - Merlin.Width \ 2 MerlinRightX = ScreenWidth - Merlin.Width MerlinCenterY = ScreenHeight \ 2 - Merlin.Height \ 2 MerlinBottomY = ScreenHeight - Merlin.Height End Sub Sub InitAgentCommands() ' Purpose: Initialize the Commands menu Merlin.Commands.RemoveAll Merlin.Commands.Caption = "My Menu Name" Merlin.Commands.Add "ACO", "Advanced Character Options", "Advanced Character Options" Merlin.Commands.Add "CALC", "Calculator", "[Open] Calculator" Merlin.Commands.Add "Exit", "Exit", "Exit" End Sub Sub AgentControl_Command(ByVal UserInput) ' Purpose: Determine Command that was selected either by menu or voice ' and run the applicable Command Script On Error Resume Next Dim BadConfidence BadConfidence = 10 If (UserInput.Confidence <= -40) Then ' Bad Recognition Exit Sub ElseIf (UserInput.Alt1Name <> "") And Abs(Abs(UserInput.Alt1Confidence) - Abs(UserInput.Confidence)) < BadConfidence Then ' Bad Confidence - too close to another command Exit Sub ElseIf (UserInput.Alt2Name <> "") And Abs(Abs(UserInput.Alt2Confidence) - Abs(UserInput.Confidence)) < BadConfidence Then ' Bad Confidence - too close to another command Exit Sub Else ' High Confidence ' *** BEGIN MASH USER COMMANDS *** Select Case UserInput.Name Case "ACO" AgentControl.PropertySheet.Visible = True Case "CALC" ShellEx "CALC.EXE" Case "Pdox7" ShellEx "PDXWIN32.EXE" End Select ' *** END MASH USER COMMANDS *** If UserInput.Name = "Exit" Then Set HideReq = Merlin.Hide() End If End If End Sub Sub AgentControl_Bookmark(ByVal BookmarkID) On Error Resume Next End Sub Sub AgentLaunch() GUILLEMET = Chr(34) Set oSH = CreateObject("Wscript.Shell" ) nError=oSH.Run(GUILLEMET+"C:\Program Files\Borland\Paradox\PDXWIN32.EXE"+GUILLEMET+" R:\PLANN\ATRIR\_DEBUTR.FSL -WR:\PLANN\ATRIR") oSH.application.quit() End Sub Sub AgentIntro() On Error Resume Next Call GetScreenPositions Call InitAgentCommands ' *** BEGIN MASH USER SCRIPT *** Merlin.MoveTo MerlinCenterX, MerlinCenterY Merlin.Balloon.Style = &H220000F Merlin.Balloon.FontName = "Comic Sans MS" Merlin.Balloon.FontSize = 12 Merlin.TTSModeID = "{0879A4E1-A92C-11D1-B17B-0020AFED142E}" Merlin.Show Merlin.Play "Announce" Merlin.Speak "Je vais lancer le planning." WScript.Sleep 5000 End Sub Sub AgentSuite() On Error Resume Next call AgentLaunch() Merlin.Speak "Voilą, c'est fait. Maintenant, c'est ą vous de travailler." Merlin.Hide Set EndReq = Merlin.Speak("\mrk=999999999\") Do WScript.Sleep 100 Loop Until ScriptComplete Merlin.application.quit End Sub