Skype

  • Hallo,

    Ich hab mir hiermal das SkypeCom Include runtergeladen. Leider kommt egal was ich mache allein dadurch, dass "#include <SkypeCOM.au3>" im Code ist immer die gleiche Fehlermeldung.

    Spoiler anzeigen


    We intercepted a COM Error !
    Number is: 80040154
    Windescription is: Klasse nicht registriert

    Source is:
    Description is:
    Help file is:
    Help cotext is: 47035216
    Last DDL error: 0
    Script line: 35

    und

    Spoiler anzeigen


    Line 38 (File "C:\Program Files (x86)\Autoit3\Include\SkypeCOM.au3"):

    Const $UserStatus_Offline =
    $oSkype.Convert.TextToUserStatus("OFFLINE")
    Const $UserStatus_Offline = ^ERROR

    Error: Error in expression


    Hoffentlich weiß einer von euch, woran das liegt.

    3 Mal editiert, zuletzt von jjj (6. September 2013 um 17:50)

  • es kommt immer noch der gleiche Fehler.

    Ich hab die Zeile jetzt so eingebaut:

    [autoit]


    ;Zeile 29 bis 43
    #include-once

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

    ; Set custom error handler
    $oError = ObjEvent("AutoIt.Error","ErrFunc")

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

    ; Create Skype Object
    Global $oSkype = ObjCreate("Skype4COM.Skype")
    Global $id ; Hier die neue Zeile
    ; Declare Constants
    Const $UserStatus_Offline = $oSkype.Convert.TextToUserStatus("OFFLINE")
    Const $UserStatus_Online = $oSkype.Convert.TextToUserStatus("ONLINE")
    Const $UserStatus_Away = $oSkype.Convert.TextToUserStatus("AWAY")
    Const $UserStatus_NotAvailable = $oSkype.Convert.TextToUserStatus("NA")
    Const $UserStatus_DoNotDisturb = $oSkype.Convert.TextToUserStatus("DND")

    [/autoit]


    Weiß denn sonst keiner, woran das liegt?

  • "Der Moment in dem du eine Fehlermeldung lesen musst..."

    Zitat

    Line 38 (File "C:\Program Files (x86)\Autoit3\Include\SkypeCOM.au3"):

    Const $UserStatus_Offline =
    $oSkype.Convert.TextToUserSttus("OFFLINE")
    Const $UserStatus_Offline = ^ERROR

    Error: Error in expression

    Also bei mir sieht Zeile 38 so aus:

    [autoit]

    Const $UserStatus_Offline = $oSkype.Convert.TextToUserStatus("OFFLINE")

    [/autoit]

    LG
    Christoph :)

  • Wie du vielleicht gesehen hat, hab ich diesen Fehler schon behoben.

    Zitat
    [autoit]

    Const $UserStatus_Offline = $oSkype.Convert.TextToUserStatus("OFFLINE")

    [/autoit]


    bringt aber trotzdem nichts.

  • Dir ist schon klar, dass diese UDF aus dem Jahr 2008 stammt und sich der Skype Client seitdem vermutlich massivst verändert hat und zwischenzeitlich an Microsoft verkauft wurde?

  • Daran hatte ich gar nicht gedacht,
    wo bekommt man denn das "aktuelle" her?


    Google?

    Ansonsten selbst die UDF schreiben.
    Es gibt sicherlich eine Dokumentation. Sollte machbar sein ^^

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Ich bin noch einigermaßen Anfänger und hab kein Plan wie man sowas macht kann jemand irgendeine Seite empfehlen wo so etwas erklärt wird?
    Woher kann ich wissen, wie ich mit Skype "kommunizieren" kann?

    Einmal editiert, zuletzt von jjj (6. September 2013 um 17:51)

  • bitte

    [autoit]

    ; Skype
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    ;~ $Open = DllOpen("C:\Users\Alexander\Documents\Visual Studio 2010\Projects\SkypeTest\SkypeTest\obj\x86\Debug\Interop.SKYPE4COMLib.dll")

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

    $oSkype = ObjCreate("Skype4COM.Skype")
    $oSkypeEvent = ObjEvent($oSkype,"Skype_")
    $oError = ObjEvent("AutoIt.Error","MyErrFunc")

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

    $oSkype.Attach()

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

    If Not $oSkype.Client.IsRunning Then
    $oSkype.Client.Start()
    EndIf

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

    $Form1 = GUICreate("Form1", 615, 438, 192, 124)
    $Button1 = GUICtrlCreateButton("Button1", 8, 8, 75, 25)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    MsgBox(0,"Hallo",$oSkype.CurrentUserProfile.FullName)
    EndSwitch
    WEnd

    [/autoit]
  • Danke, aber bei mir kommt dieser Fehler:

    Spoiler anzeigen

    Line 12 (File.....

    [autoit]

    $oSkype.Attach()
    $oSkype^ERROR

    [/autoit]


    Error: Variable must be of type "Object"

    Aber was ich eigentlich wissen wollte ist, wie man z. B. auf so etwas kommt:

    Zitat
    [autoit]

    .CurrentUserProfile.FullName

    [/autoit]
  • In dem man die Dokumentation der Skype API liest?

    Diese ist scheinbar im Skype Developer Bereich verfügbar (Anmeldung/Registrierung erforderlich) oder man nimmt eben eines der vielen anderen Google Ergebnisse für "Skype4COM.Skype" zur Hand, wie zum Beispiel dieses hier: http://users.skynet.be/fa258239/besta…m/skype4com.pdf

    Skype schreibt im übrigen:

    Zitat


    Important: The Desktop API is no longer supported and some of its features will be gradually discontinued.

  • Weiß denn jemand, wie man den Fehler beheben kann?


    IMPORTANT: Skype4Com.dll is automatically
    included together with Skype Extras Manager during Skype installation.
    If a user has unchecked Extras Manager during installation, Skype4Com
    library will be unavailable on that machine and these examples will not
    work.