MS Agents (bekannt aus dem Microsoft Office) in eigenen Programmen verwenden.

    • VB.NET

    Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von mikeb69.

      MS Agents (bekannt aus dem Microsoft Office) in eigenen Programmen verwenden.

      Hallo,

      jeder kennt die netten Assistenten des Microsoft Office !
      Wie kann man diese Helfer in eigene Programme einbauen ?

      Ganz einfach, wie der Beispielcode zeigt.

      Zu beachten ist folgendes.
      1. Es müssen Assistenten installiert sein.
      Normalerweise befinden sich diese unter C:\WINDOWS\msagent\chars
      2. Das Control muss in die Toolbox integriert und auf die Form gezogen werden.
      Rechtsklick auf die Toolbox -> Insert Item (englisches VS) -> Com Tab -> Microsoft Agent Control auswählen
      3. Beim weitergeben des Programmes müssen die Dll's aus dem Debug-Verzeichnis mitgegeben werden.
      4. Die Microsoft Lizenzbedingungen sind natürlich auch zu beachten.
      MS Agent Seite


      VB.NET-Quellcode

      1. Imports System
      2. Imports System.IO
      3. Public Class Form1
      4. 'alle verfügbaren assistenten
      5. Private ass() As String
      6. Private assobject As AgentObjects.IAgentCtlCharacterEx
      7. Private WithEvents t As New Timer
      8. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      9. 'alle assistenten erfassen
      10. ass = Directory.GetFiles("C:\WINDOWS\msagent\chars", "*.acs")
      11. If ass.Length = 0 Then
      12. MessageBox.Show("Auf Ihrem System sind leider keine MS Agents installiert.")
      13. Me.Close()
      14. End If
      15. Dim asscharac As String = Path.GetFileNameWithoutExtension(ass(0))
      16. 'ersten assistenten aus der liste laden
      17. AxAgent1.Characters.Load(asscharac, ass(0))
      18. 'an das object übergeben
      19. assobject = AxAgent1.Characters(asscharac)
      20. 'assistenten anzeigen
      21. assobject.Show()
      22. 'timer starten
      23. t.Interval = 2500
      24. t.Start()
      25. End Sub
      26. Private Sub t_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles t.Tick
      27. 'verschiedene modi vorführen
      28. Static counter As Integer = 0
      29. Select Case counter
      30. Case 0
      31. 'schnell bewegen
      32. assobject.MoveTo(500, 500, 500)
      33. Case 1
      34. 'langsam bewegen
      35. assobject.MoveTo(200, 200, 2000)
      36. Case 2
      37. 'verschwinden
      38. assobject.Hide()
      39. Case 3
      40. assobject.Show()
      41. Case 4
      42. assobject.Speak("Ich bin ein MS Agent")
      43. Case Else
      44. 'von vorne beginnen
      45. counter = -1
      46. End Select
      47. counter += 1
      48. End Sub
      49. End Class

      Kommentare erwünscht

      Gruss

      mikeb69
      Kommentare erwünscht
      Meine geanz ehrliche Meinung zu den Assistenten ist unnötig. Ich kann genau das gleiche auch mit einem normalen Text und u.U. farblicher Hervorhebung erreichen, nur, dass es weniger Arbeit ist und es Kinder nicht so lustig finden.
      Benutzerfreundlichkeit sind imho Assistenten im Sinne von Dialogen, die Step-by-Step ablaufen und den Benutzer einfach und mit Erklärungen ans Ziel führen, oder einfach eindeutig gekennzeichnete Ein- und Ausgabefelder, nicht solche eigenartigen Figuren. Aber jedem das seine ;)
      hallo mad andy,

      sicherlich - über den sinn oder unsinn dieser kleinen figuren lässt sich streiten.
      klar ist aber auch, dass kinder diese figuren lustig finden und dagegen ist sicher nichts einzuwenden.

      ob man diese in programmen verwendet oder nicht, steht und fällt mir der lizenzbedingung von microsoft.
      von daher - gebe ich dir recht - hätte man sich diesen code auch sparen können.

      aber lass mich halt, meine kinder hatten ihren spaß beim beobachten der figuren ! :thumbup:

      gruss

      mikeb69
      hallo metal freak,

      das liegt am gültigkeitsbereich von variablen !
      bei variablen die innerhalb einer sub oder funktion definiert wurden macht es keinen sinn diese public oder private zu deklarieren, weil deren gültigkeit nicht über das ende der sub oder funktion hinausgeht.

      bei variablen ausserhalb von sub oder funktion kannst du dann entsprechend entscheiden ob diese private, public oder wie auch immer sein soll.
      dies definiert dann den gültigkeitsbereich der variablen eindeutig und klar.

      klar geht dim auch, aber warum nicht klar schreiben wo der gültigkeitsbereich enden soll ?

      im übrigen, glaube ich nicht, dass ich von dim als veraltet gesprochen habe - kannst mich ja korrigieren !

      gruss

      mikeb69