A insérer dans le body
<SCRIPT language=VBScript src="bibliotheque_JS/merlin.js"></script>
Exemple de javascript à modifier bien évidemment selon la page d'intégration
Dim Merlin
Dim UsedChars
Dim MerlinID
Dim MerlinACS
Dim MerlinLoaded
Dim HideReq
Dim Req
Dim MerlinLeftX, MerlinCenterX, MerlinRightX
Dim MerlinTopY, MerlinCenterY, MerlinBottomY
UsedChars = "Merlin"
MerlinID = "Merlin"
MerlinACS = "Merlin.acs"
MerlinLoaded = False
If AgentInstalled() Then
Document.WriteLn "<Object ID=""AgentControl"" Width=0 Height=0"
Document.WriteLn " ClassID=""CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F"""
Document.WriteLn " CodeBase=""#VERSION=2,0,0,0"">"
Document.WriteLn "</Object>"
Document.WriteLn "<Object ID=""L&HTruVoice"" Width=0 Height=0"
Document.WriteLn " ClassID=""CLSID:B8F2846E-CE36-11D0-AC83-00C04FD97575"""
Document.WriteLn " CodeBase=""#VERSION=6,0,0,0"">"
Document.WriteLn "</Object>"
End If
Function AgentInstalled()
On Error Resume Next
Dim AgentControl
Dim ScriptVersion
ScriptVersion = GetScriptVersion()
If ScriptVersion > 1 Then
Set AgentControl = CreateObject("Agent.Control.2")
AgentInstalled = IsObject(AgentControl)
Else
AgentInstalled = False
End If
End Function
Function GetScriptVersion()
On Error Resume Next
Dim Ver
Ver = 0
Ver = ScriptEngineMajorVersion
If Ver = 0 Then Ver = 1
GetScriptVersion = Ver
End Function
Sub Window_OnLoad()
On Error Resume Next
If Not AgentInstalled() Then
Exit Sub
End If
AgentControl.Connected = True
MerlinLoaded = LoadLocalAgent(MerlinID, MerlinACS)
If MerlinLoaded Then
Call SetCharObj
End If
Call CheckLoadStatus
End Sub
Function LoadLocalAgent(ByVal CharID, ByVal CharACS)
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()
On Error Resume Next
Set Merlin = AgentControl.Characters(MerlinID)
Merlin.LanguageID = &H40C
End Sub
Sub CheckLoadStatus()
If Not MerlinLoaded Then
Call LoadError
Exit Sub
End If
Window.Status = ""
Call AgentIntro
End Sub
Sub AgentControl_RequestComplete(ByVal RequestObject)
On Error Resume Next
End Sub
Sub LoadError()
Dim strMsg
Window.Status = ""
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)
On Error Resume Next
Merlin.StopAll
If Not MerlinID.HasOtherClients Then
If Merlin.Visible Then
Set HideReq = Merlin.Hide()
Else
AgentControl.Characters.Unload MerlinID
End If
End If
End Sub
Sub GetScreenPositions()
On Error Resume Next
Dim ScreenWidth
Dim ScreenHeight
ScreenWidth = Window.Screen.Width
ScreenHeight = Window.Screen.Height
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 \ 4 - Merlin.Height \ 4
MerlinBottomY = ScreenHeight - Merlin.Height
End Sub
Function GetTimeOfDay()
Dim TimeOfDay
Dim h
h = Hour(Now())
If h < 12 Then
TimeOfDay = "jour "
ElseIf h < 17 Then
TimeOfDay = "ne après midi "
Else
TimeOfDay = "soir "
End If
GetTimeOfDay = TimeOfDay
End Function
Sub InitAgentCommands()
On Error Resume Next
Merlin.Commands.RemoveAll
Merlin.Commands.Caption = "My Menu Name"
Merlin.Commands.Add "OAC", "Options avancées du compagnon", "Options avancées du compagnon"
End Sub
Sub AgentControl_Command(ByVal UserInput)
On Error Resume Next
Dim BadConfidence
BadConfidence = 10
If (UserInput.Confidence <= -40) Then
Exit Sub
ElseIf (UserInput.Alt1Name <> "") And Abs(Abs(UserInput.Alt1Confidence) - Abs(UserInput.Confidence)) < BadConfidence Then
Exit Sub
ElseIf (UserInput.Alt2Name <> "") And Abs(Abs(UserInput.Alt2Confidence) - Abs(UserInput.Confidence)) < BadConfidence Then
Exit Sub
Else
Select Case UserInput.Name
Case "OAC"
AgentControl.PropertySheet.Visible = True
End Select
End If
End Sub
Sub AgentControl_Bookmark(ByVal BookmarkID)
On Error Resume Next
End Sub
Sub AgentIntro()
On Error Resume Next
Call GetScreenPositions
Call InitAgentCommands
Merlin.MoveTo MerlinCenterX, MerlinCenterY
Merlin.Show
Merlin.Play "GetAttention"
Merlin.Play "GetAttentionContinued"
Merlin.Play "GetAttentionReturn"
Merlin.Speak "Bon" & GetTimeOfDay() & "!"
Merlin.Play "Acknowledge"
Merlin.Speak "Je vous souhaite la bienvenue sur cette page d'accueil."
Merlin.Play "Explain"
Merlin.Speak "Je vais être votre guide si vous le voulez bien !"
Merlin.Speak "Je vous recommande une résolution écran de 1280 x 1024 pixels pour profiter pleinement du site et naviguer confortablement"
Merlin.MoveTo 145, 600
Merlin.Play "GestureLeft"
Merlin.Speak "Pour accéder au site, vous devez cliquer sur ENTREZ"
Merlin.Play "GestureRightReturn"
Merlin.MoveTo 35, 600
Merlin.Play "GestureLeft"
Merlin.Speak "Bonne navigation et n'hésitez pas à accéder à l'ensemble des rubriques proposées"
Merlin.Play "GestureLeftReturn"
Merlin.Play "Greet"
Merlin.Speak "Je vais vous quitter à présent !"
Merlin.Play "GreetReturn"
Merlin.Hide
End Sub
Voila ce que cela donne au final http://perso.wanadoo.fr/eric.blaecke/
-------
Les détails font la perfection, et la perfection n'est pas un détail.