[Skype API] Ich habe eine Frage über die Skype API

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von PHPrene.

    [Skype API] Ich habe eine Frage über die Skype API

    Hallo ich Möchte gerne Wissen wie man über die Skype API eine Nachricht Verändern kann z.b das diese nachricht "Halo" über die API in "Hallo" Editiert wird. MFG im Voraus

    PHPrene
    Glaub das geht nicht. Da müsstest du ja die Nachricht beim Senden abfangen, korrigieren und dann schicken. Du könntest dir aber ein Programm bauen, mit dem du Skypst, welches dann Auto-Korrektur hat...
    Mfg
    Vincent

    So ein Quatsch, natürlich geht das mit der API.

    Im MessageStatus Event kann man das ganz einfach machen indem man die Eigenschaft Body der ChatMessage ändert. Und über IsEditable kann man überprüfen ob man diese editieren kann.

    Ich empfehle mal einen Blick in die Dokumentation zu werfen(dev.skype.com/accessories/skype4com - Skype4Com.chm).

    IChatMessage Interface Reference - Properties - BSTR Body [get, set] Returns/sets chat message body.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Pinki“ ()

    Pinki schrieb:

    Ich empfehle mal einen Blick in die Dokumentation zu werfen(dev.skype.com/accessories/skype4com - Skype4Com.chm).


    IChat Interface Reference - Properties - IChatMessageCollection Messages [get] This commmand queries chat messages.

    IChat enthält eine Eigenschaft Messages, welche du mit einer Schleife durchgehen kannst. ISkype enthält diese Eigenschaft auch, wie gesagt schau dir die Dokumentation an da steht alles drin was man wissen muss.
    Huch, wusste gar nicht, dass das geht :D
    @PHPrene

    (Ein Import ist Voraussetzung:

    VB.NET-Quellcode

    1. Imports SKYPE4COMLib
    )
    Zuerst musst du ein neues Objekt erstellen, welches du als WithEvents definierst, da du ja das Event MessageStatus brauchst (geht auch mit AddHandler, ich finds aber so schöner):

    VB.NET-Quellcode

    1. Dim WithEvents skype As New Skype



    Danach verbindest du dich mit Skype, am besten im FormLoad:

    VB.NET-Quellcode

    1. skype.Attach()



    Jetzt brauchste das Event 'MessageStatus':

    VB.NET-Quellcode

    1. Private Sub skype_MessageStatus(pMessage As ChatMessage, Status As TChatMessageStatus) Handles skype.MessageStatus
    2. End Sub


    Wir müssen nun Abfragen, ob du eine Nachricht gesendet hast, da das Event auch ausgelöst wird, wenn du eine Nachricht empfängst:

    VB.NET-Quellcode

    1. If Status = TChatMessageStatus.cmsSending Then
    2. End If


    Am besten machen wir jetzt ein Select Case der pMessage.Body (das ist die Nachricht) und geben das anschließend zurück:

    VB.NET-Quellcode

    1. Dim newmsg As String = pMessage.Body
    2. Select Case pMessage.Body
    3. Case "allo"
    4. newmsg = "Hallo"
    5. End Select
    6. pMessage.Body = newmsg



    Ich hoffe, du guckst dir das mal an und C & P nicht nur. Hier nochmal der ganze Code:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports SKYPE4COMLib
    2. Public Class Form1
    3. Dim WithEvents skype As New Skype
    4. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    5. skype.Attach()
    6. End Sub
    7. Private Sub skype_MessageStatus(pMessage As ChatMessage, Status As TChatMessageStatus) Handles skype.MessageStatus
    8. If Status = TChatMessageStatus.cmsSending Then
    9. Dim newmsg As String = pMessage.Body
    10. Select Case pMessage.Body
    11. Case "allo"
    12. newmsg = "Hallo"
    13. End Select
    14. pMessage.Body = newmsg
    15. End If
    16. End Sub
    17. End Class
    Mfg
    Vincent

    VincentTB schrieb:

    Ich hoffe, du guckst dir das mal an und C & P nicht nur. Hier nochmal der ganze Code:

    Ich verstehe nicht ganz wieso du dann überhaupt den Code zum Copy & Pasten zum Schluss anhängst?...

    Hier nochmals Tutorials mit Erklärung:

    [VB.NET] Computer über Skype "steuern" (Using Skype4Com.dll)
    [VB.NET] Skype nachricht versenden, Skype User anrufen, uvm.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Kann gut sein. Nur jedoch genau damit, verursachst du C&P.
    Aber es ist doch sowieso sinnlos hier zu diskutieren.

    Gather Ende.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Habe ne frage ich möchte das der Stern weiter Wandert aber warum Überspringt er das Andere :


    Private Sub skype_MessageStatus(ByVal pMessage As ChatMessage, ByVal Status As TChatMessageStatus) Handles skype.MessageStatus
    If Status = TChatMessageStatus.cmsSending Then
    Dim newmsg As String = pMessage.Body

    Select Case pMessage.Body
    Case "start"
    newmsg = "Starting Complession... " & vbCrLf & "|* |"
    System.Threading.Thread.Sleep(6000)
    newmsg = "Starting Complession... " & vbCrLf & "| * |"
    System.Threading.Thread.Sleep(600)
    newmsg = "Starting Complession... " & vbCrLf & "| * |"
    System.Threading.Thread.Sleep(600)
    newmsg = "Starting Complession... " & vbCrLf & "| * |"
    System.Threading.Thread.Sleep(600)
    newmsg = "Starting Complession... " & vbCrLf & "| *|"
    End Select
    pMessage.Body = newmsg
    End If
    Ka, was das werden soll, aber vielleicht ja sowas: (Die Text wird untereinander gesendet)

    Spoiler anzeigen

    VB.NET-Quellcode

    1. If Status = TChatMessageStatus.cmsSending Then
    2. Dim newmsg As String = pMessage.Body
    3. Select Case pMessage.Body
    4. Case "start"
    5. pMessage.Body = "|* |"
    6. System.Threading.Thread.Sleep(6000)
    7. pMessage.Chat.SendMessage("| * |")
    8. System.Threading.Thread.Sleep(600)
    9. pMessage.Chat.SendMessage("| * |")
    10. System.Threading.Thread.Sleep(600)
    11. pMessage.Chat.SendMessage("| * |")
    12. System.Threading.Thread.Sleep(600)
    13. pMessage.Chat.SendMessage("| *|")
    14. End Select
    15. End If


    oder sowas: (Der Text verändert sich. Es wird nur eine Nachricht gesendet)

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub skype_MessageStatus(pMessage As ChatMessage, Status As TChatMessageStatus) Handles skype.MessageStatus
    2. If Status = TChatMessageStatus.cmsSending Then
    3. Dim newmsg As String = pMessage.Body
    4. Select Case pMessage.Body
    5. Case "start"
    6. pMessage.Body = "|* |"
    7. System.Threading.Thread.Sleep(6000)
    8. pMessage.Body = "| * |"
    9. System.Threading.Thread.Sleep(600)
    10. pMessage.Body = "| * |"
    11. System.Threading.Thread.Sleep(600)
    12. pMessage.Body = "| * |"
    13. System.Threading.Thread.Sleep(600)
    14. pMessage.Body = "| *|"
    15. End Select
    16. End If
    17. End Sub


    Edit: Ach ja, und Bitte VB Tags benutzen - was ist damit gemeint?
    Mfg
    Vincent

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VincentTB“ ()