Allez plus loin dans le numérique
55 utilisateurs connectés

Comment incorporer un "compagnon office" dans son site ?

DJLF le 27 décembre 2005 à 07h51
Bonjour à Toutes et Tous,

Féliciation 01NET, j'attendais cette création depuis fort longtemps.

Ma question dans le sujet de ce topic est qu'il me semble bien avoir lu qu'il était possible (et avec la bénédiction de MS) de mettre un "compagnon office" sur un site perso, quand est-il ?

Encore long vie et merci pour tous ce que vous pouvez m'apporter autant dans vos magasines que sur votre forum.

Bonnes Fêtes et Meilleurs Voeux 2006 :vivemoi:

-->Message édité par DJLF le 27/12/2005 08:07:16<--
-------
@+ DOM ;)
Ordividuel le 27 décembre 2005 à 13h57
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.
nicolasdu83 le 27 décembre 2005 à 15h40
Ordividuel a écrit :
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/


Je précise que ça fonctionne uniquement sous IE car c'est du VBScript et que le VB script est un language propriétaire de Micro$oft
DJLF le 27 décembre 2005 à 15h52
Bonjour vous deux,
Vous êtes des chefs, merci beaucoup car d'autres m'auraient renvoyé sur le numéro 172 de Mai 2005.
En plus comble de bonheur, je n'ai qu'à faire un copier/coller.
Merci encore et bonnes fêtes de fin d'année et meilleurs voeux pour 2006.
-------
@+ DOM ;)
DJLF le 27 décembre 2005 à 16h44
Je suis allez un peu vite dans mes remerciements : ça ne fonctionne pas.

Mais bon, le mien non plus :

<object style="visibility:hidden" id="MSAgent" classid="CLSID:D45D31B-5C6E-11D1-9EC1-00C04FD7081F">
</object>
<script language="javascript">
AgentACS = "http://www.msagentring.org//chars//merlin//merlin.acf";
states = "showing, Hiding, Speaking, Moving";
anim = "GetAttention, GetAttentionReturn, Congratulate, Acknowledge, Read, WriteConinued, WriteReturn";
MSAgent.Connected = true;
MSAgent.Characters.load("a",AgentACS);
ag = MSAgent.Characters.Characters("a");
ag.get("state",states);
ag.get("animation",anim);
ag.show();
ag.movieTo(400,300);
ag.play("GetAttention");
ag.play("GetAttentionReturn");
ag.speak("bonjour");
ag.play("Congratulate");
ag.speak("et bienvenue");
ag.play("Think");
ag.speak("Que pensez vous de moi ?");
ag.play("Acknowledge");
ag.speak("merci !");
ag.play("read");
ag.play("writeContinued");
ag.play("WriteReturn");
ag.speak("au revoir");
ag.hide()
</script>

J'aurais une erreur sur la ligne en rouge "MSAgent.Characters" a la valeur Null ou n'est pas un objet" : si vous avez une idée ?
-->Message édité par DJLF le 27/12/2005 16:48:34<--
-------
@+ DOM ;)
Ordividuel le 27 décembre 2005 à 16h57
Erreur sans doute à la ligne ag = MSAgent.Characters.Characters("a");

:??: MSAgent.Characters a la valeur nul ou n'est pas un objet
-------
Les détails font la perfection, et la perfection n'est pas un détail.
DJLF le 27 décembre 2005 à 17h00
OUI, moi aussi
Et pourquoi le tiens ne marche pas non plus ?
-------
@+ DOM ;)
Ordividuel le 27 décembre 2005 à 17h03
Si MERLIN est bien opérationnel sur mon site mais effectivement comme précisé précédemment uniquement sous IE
-------
Les détails font la perfection, et la perfection n'est pas un détail.
DJLF le 27 décembre 2005 à 17h04
OK j'ai trouvé, tu as oublié qq trucs :
<script> au début du listing : Dim Merlin.... et </script> en fin du listing (après : End Sub)
-------
@+ DOM ;)
Ordividuel le 27 décembre 2005 à 17h06
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Test MERLIN</title>
</head>

<body>

<SCRIPT language=VBScript src="bibliotheque_JS/merlin.js"></script>

</body>

</html>
-------
Les détails font la perfection, et la perfection n'est pas un détail.
Ordividuel le 27 décembre 2005 à 17h08
Sauf si tu appelles le javascript de cette façon ci-avant avec le script isolé dans un fichier nommé et contenu comme précisé en gras
-------
Les détails font la perfection, et la perfection n'est pas un détail.
DJLF le 27 décembre 2005 à 17h14
J'avais bien compris et c'est le mieux étant donné que ça ne polue pas la page avec des tonnes de JS.
De plus la modif est quand même plus agréable.
Encore merci et à bientôt...
-------
@+ DOM ;)
DJLF le 28 décembre 2005 à 09h52
Bonjour,
Est-il possible de plus détailler le script ?
Pavés : déplacements (haut,bas - gauche,droite), postures (regards, bras, envole, etc.), conversations, ...
-------
@+ DOM ;)
Ordividuel le 28 décembre 2005 à 15h56
Je vous propose d'aller à cette URL et vous y trouverez sans doute ce que vous souhaitez.
http://216.239.59.104/search?q=cache:zXIHoduuLc8J:download.microsoft.com/down(...)
:)
-------
Les détails font la perfection, et la perfection n'est pas un détail.
DJLF le 28 décembre 2005 à 17h14
Super, Merci...
-------
@+ DOM ;)
ecrogal le 26 janvier 2006 à 19h38
j'ai testé ca marche po


AIDE DU FORUM

FORUMS THÉMATIQUES

FORUMS GÉNÉRAUX

publicité
Shopping
Des chaussures pour un automne en ville.

Service 01net
Newsletters 01net
abonnez vous gratuitement !
  
01Informatique
01 INFORMATIQUE
L'hebdo de référence des décideurs informatiques.
Micro Hebdo
MICRO HEBDO
L'hebdo qui vous simplifie la micro
et Internet.
L'Ordinateur Individuel
L'ORDINATEUR INDIVIDUEL
Le mensuel informatique qui vous informe et vous conseille.
Nous contacter  |  Charte de confiance  |  Voir notice légale

01net.  -  01men  -  RMC  -  BFM Radio  -  BFM TV  -  TousLesPodcasts  -  01informatique.fr  -  Association RMC-BFM
Tous droits réservés © 1999 - 2009 Internext - 01net.