Variablen, die per Define ausserhalb von Prozeduren deklariert wurden,
sind innerhalb von Prozeduren unbekannt.
aus diesem Grund sollte man die Deklaration in die Prozedur verlagern.
Dort nimmt man allerdings 'Protected' anstelle von 'Define'.
so geht's also besser:
Code: Alles auswählen
XIncludeFile "comate.pbi"
;EnableExplicit
Procedure Friends()
Protected SkypeObject.COMateObject, SkypeFriend.COMateObject
Protected ENUMObject.COMateEnumObject
Protected FullName.s
SkypeObject = COMate_CreateObject("Skype4COM.Skype")
If SkypeObject
ENUMObject = SkypeObject\CreateEnumeration("Friends")
If ENUMObject
SkypeFriend = ENUMObject\GetNextObject()
While SkypeFriend
FullName = SkypeFriend\GetStringProperty("FullName")
Debug FullName
SkypeFriend\Release()
SkypeFriend = ENUMObject\GetNextObject()
Wend
ENUMObject\Release()
EndIf
SkypeObject\Release()
EndIf
EndProcedure
hier noch ein Tipp: EnableExplicit solltest Du nicht auskommentieren,
sondern Dich gleich daran gewöhnen, Variablen, die Du verwendest, auch
direkt zu deklarieren. Das erspart Dir dann bei grösseren Codes die
unnötige Suche nach Bugs, die aufgrund von Tippfehlern passieren.
EDIT: Und noch eine Frage: Wie bist du auf das "Friends" gekommen? in der Hilfe von der Skype4COM lib finde ich nirgends sowas

ich habe das erste genommen, was mir einfach umzusetzen schien:
https://developer.skype.com/Docs/Skype4 ... Collection
Grüße ... Kiffi