Skype Problem

  • Hallo,
    ich wage mich an die Skype Api dran,
    komme aber nicht wirckichweiter, bis jetzt möchte ich nur wenn man das Skript startet,dass dann der Status auf"Beschäftigt" gesetzt wird.

    [autoit]

    #include <SkypeCOM.au3>
    ;// Create a Skype4COM object:
    $oSkype = ObjCreate("Skype4COM.Skype")
    $oSkypeEvent = ObjEvent($oSkype,"Skype_")
    $oError = ObjEvent("AutoIt.Error","MyErrFunc")

    [/autoit][autoit][/autoit][autoit]

    ;// Start the Skype client:
    If Not $oSkype.Client.IsRunning Then
    $oSkype.Client.Start()
    EndIf
    ;//HIER DIE FUNKTION!
    Func _SkypeCOM_ChangeUserStatus($status)
    $status = $UserStatus_DoNotDisturb
    EndFunc
    ;//

    [/autoit]

    Fehlermeldung:

    Spoiler anzeigen
    Code
    C:\Dokumente und Einstellungen\**\Desktop\AutoIt\SkypeCOM.au3(321,27) : WARNING: $id: possibly used before declaration.
    	$oCall = $oSkype.Call($id)
    	~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Dokumente und Einstellungen\**\Desktop\AutoIt\SkypeTEST.au3(12,41) : ERROR: _SkypeCOM_ChangeUserStatus() already defined.
    Func _SkypeCOM_ChangeUserStatus($status)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Dokumente und Einstellungen\**\Desktop\AutoIt\SkypeCOM.au3(321,27) : ERROR: $id: undeclared global variable.
    	$oCall = $oSkype.Call($id)
    	~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Dokumente und Einstellungen\**\Desktop\AutoIt\SkypeTEST.au3 - 2 error(s), 1 warning(s)

    Würde mich um jede Hilfe freuen :)

  • Ich nehme an, dass Deine Funktion _SkypeCOM_ChangeUserStatus angesprungen werden soll, wenn der Event "ChangeUserStatus" eintritt?
    Falls ja, dann ist der Funktionsname falsch, denn es müssen ObjEvent und Funktionsname zusammenstimmen. Also:

    [autoit]

    $oSkypeEvent = ObjEvent($oSkype,"Skype_")

    [/autoit][autoit][/autoit][autoit]

    Func Skype_ChangeUserStatus($status)
    ; Deine Befehle hier
    EndFunc

    [/autoit]


    Die Fehlermeldungen besagen ausserdem, dass die Funktion _SkypeCOM_ChangeUserStatus bereits definiert ist, ziemlich sicher im SkypeCOM.au3.

  • Funktioniert icht,oder mache ich wieder was falsch?

    Der Fehler:

    Spoiler anzeigen
    Code
    C:\Dokumente und Einstellungen\**\Desktop\AutoIt\SkypeTEST.au3(1,32) : WARNING: $oSkype: possibly used before declaration.
    $oSkypeEvent = ObjEvent($oSkype,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Dokumente und Einstellungen\**\Desktop\AutoIt\SkypeTEST.au3(4,2) : ERROR: syntax error
    	Case
    	^
    C:\Dokumente und Einstellungen\**\Desktop\AutoIt\SkypeTEST.au3(1,32) : ERROR: $oSkype: undeclared global variable.
    $oSkypeEvent = ObjEvent($oSkype,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Dokumente und Einstellungen\**\Desktop\AutoIt\SkypeTEST.au3 - 2 error(s), 1 warning(s)

    Der Code:

    Spoiler anzeigen
    [autoit]

    $oSkypeEvent = ObjEvent($oSkype,"Skype_")

    [/autoit] [autoit][/autoit] [autoit]

    Func Skype_ChangeUserStatus($status)
    Case $status = 3
    $status = $UserStatus_Away
    EndFunc

    [/autoit]
  • Funktioniert icht,oder mache ich wieder was falsch?


    Ja ;)
    Mein Code war natürlich nur ein Ausschnitt. Wenn ich das, was ich ausdrücken wollte, auf Deinen Code aus dem ersten Posting anwende, dann sieht das so aus:

    [autoit]

    #include <SkypeCOM.au3>
    ;// Create a Skype4COM object:
    Global $oSkype = ObjCreate("Skype4COM.Skype")
    Global $oSkypeEvent = ObjEvent($oSkype,"Skype_")
    Global $oError = ObjEvent("AutoIt.Error","MyErrFunc")

    [/autoit][autoit][/autoit][autoit]

    ;// Start the Skype client:
    If Not $oSkype.Client.IsRunning Then
    $oSkype.Client.Start()
    EndIf
    ;//HIER DIE FUNKTION!
    Func Skype_ChangeUserStatus($status)
    $status = $UserStatus_DoNotDisturb ; <== Das hier funzt sicher nicht. Du musst ja das Skype Objekt ansprechen also z.B. $oSkype.Client.Status = $UserStatus_DoNotDisturb
    EndFunc
    ;//

    [/autoit]

    BTW: In Deiner Fehlermeldung kommt "Case" vor, was aber im Code nicht auftaucht. Bitte poste stets den vollständigen Code mit dem Du testest und nur die Meldungen die dieser Code generiert!

  • Kapier ich irgendwie nicht :(


    Was?

  • Code
    C:\Dokumente und Einstellungen\**\Desktop\AutoIt\SkypeTEST.au3(4,2) : ERROR: syntax error
    	Case
    	^


    Sagt doch schon alles. ein Case kann nicht ohne Switch eingesetzt werden

    Code
    C:\Dokumente und Einstellungen\**\Desktop\AutoIt\SkypeTEST.au3(1,32) : ERROR: $oSkype: undeclared global variable.
    $oSkypeEvent = ObjEvent($oSkype,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^


    Auch das sagt schon alles. $oSkype wird in deinem Script nirgends declariert

    ich denke du solltest dich erstmal mit den Grundlagen von Autoit vertraut machen, bevor du mit Objekten herumspielen willst

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.