[VB.Net] Skype API | Tutorial

09/30/2012 17:43 Gamekeystore#1
Hi Leute,

ich möchte euch heute zeigen, wie ihr in VB.Net Skype steuern könnt.

Wichtig: Skype muss beim Starten geöffnet sein und man muss online bzw. abwesend oder beschäftigt sein.


Als erstes muss man die Dll von Skype einbinden. Das geht so:

Menü => Projekt => Verweis hinzufügen... => COM => Scrollen => Skype4COM 1.0 Type Library auswählen => OK

Jetzt kann man endlich mit dem Coden beginnen.

Rechtsklick auf die Form und dann Code anzeigen anklicken. Dadurch kommt man zum Editor. In die erste Zeile, d.h über Public Class Form1 muss man schreiben:

Code:
Imports SKYPE4COMLib
Hier wird die "Bibliothek" von Skype importiert.
Jetzt kann man auf Skype zugreifen.

Unter Public Class Form1 kommt:

Code:
Dim Skype As New Skype
Dim i as Integer
Hier werden Skype und ein Integer deklariert

Der ganze Code ist bis jetzt:

Code:
Imports SKYPE4COMLib

Public Class Form1
    Dim Skype As New Skype
    Dim i as Integer
End Class
Befehle:

Wichtig: Man kann den Username herausfinden, indem man auf den Kontakt einen Rechtsklick macht und auf "Profil anzeigen" klickt. Der Username ist der Skype-Name in dem Fenster, dass sich dadurch öffnete.


Um eine Nachricht an einen User senden zu können benötigt man folgenden Code:

Code:
Skype.SendMessage("Username", "Text")
Statustext ändern:

Code:
Skype.CurrentUserProfile.MoodText = "Statustext"
User anrufen:

Code:
Skype.PlaceCall("Username")
Alle Kontakte in einer (Checked-)Listbox anzeigen lassen:

Code:
For Each a As SKYPE4COMLib.User In Skype.Friends
            CheckedListBox1.Items.Add(a.Handle)
        Next
An alle Kontakte eine Nachricht senden:

Code:
For Each a As SKYPE4COMLib.User In Skype.Friends
            Skype.SendMessage(a.Handle, "Text")
        Next
An alle ausgewählten Kontakte in der CheckedListbox eine Nachricht senden:

Code:
  Do While i < CheckedListBox1.CheckedItems.Count
            Skype.SendMessage(CheckedListBox1.CheckedItems.Item(i), "Text")
            i = i + 1
        Loop
Diese ganzen befehle kann man in Buttons, Timers, Schleifen etc. packen.

Wichtig: Beim ersten Start wird Skype fragen, ob das Programm zugreifen darf. Da muss man "Zugriff erlauben" klicken.

Fragen dürfen gerne per Thread gestellt werden.

Bewertungen sowie Verbesserungsvorschläge werden gerne gesehen.


Mfg Michi


PS: Mir wäre wichtig, dass ihr nicht nur den Code kopiert, sondern ihn auch versteht.
09/30/2012 20:22 Dr.Toni-old#2
Ich habs mal ausgetestet :)

Das
Code:
Imports SKYPE4COMLib
kommt trotz der obigen Schritte nicht ;)
09/30/2012 20:48 Gamekeystore#3
Du musst die richtige Dll importieren.
09/30/2012 20:50 Dr.Toni-old#4
Ich hab genau die importiert die oben steht :)
09/30/2012 21:03 Gamekeystore#5
Es gibt noch ne Möglichkeit:

Wähle mal bei "Verweis hinzufügen" statt "COM" durchsuchen aus.

C: => Program Files (x86) => Common Files => Skype Skype4COM.dll

Mach mal einen Verweis auf diese.

Edit: Hat sich erledigt.
Ein Satz war leicht missverständlich geschrieben, wurde überarbeitet.
10/01/2012 21:30 Dr.Toni-old#6
So habs mir nochmal angeschaut... klappt jetzt alles :)
10/05/2012 23:00 backtothetoast#7
sry wegen push, aber wieso glaube ich, dass dieser scriptkiddie, sein skypevirus zum teil mit diesem tutorial geschrieben hat? klar ist auf jeden fall, dass der virus in vb.net geschrieben wurde. :DD
10/05/2012 23:30 Dr.Toni-old#8
Welches Virus und welches Script Kiddy meinst du?
10/05/2012 23:41 Gamekeystore#9
Quote:
Originally Posted by backtothetoast View Post
sry wegen push, aber wieso glaube ich, dass dieser scriptkiddie, sein skypevirus zum teil mit diesem tutorial geschrieben hat? klar ist auf jeden fall, dass der virus in vb.net geschrieben wurde. :DD
Kleine Info:

Dass ist nicht das einzigste Tutorial dazu.
10/05/2012 23:53 backtothetoast#10
Es geht doch gerade so ein Skypevirus rum, der so eine Nachricht hinterlässt: hallo, sag mal ehrlich sind das eine fotos? *hier link*

Eine Frage mal zu dem Tutorial, wie bekomme ich den Kontakt heraus, mit dem ich gerade chatte?
10/05/2012 23:58 Gamekeystore#11
Weis ich noch nicht, aber ich suche immer nach neuen Funktionen.
10/06/2012 00:06 backtothetoast#12
Würdest du für mich mitsuchen? :)
Bin da bisher noch nicht drauf gekommen.
10/08/2012 07:37 TacaFlow'#13
Wenn du rausfindest wie man Anruft + Auflegt ohne Fehler, kriegst du'n Thanks..
10/08/2012 13:52 Gamekeystore#14
Hab ich schon :), aber ich will es eigentlich nicht weitergeben, weil ich ja ein Skype Multi-Tool hab und mir Konkurenz nicht so gut kommt. :D
10/08/2012 20:39 Kraizy​#15
Quote:
Originally Posted by PR∅GR∀MM∋R View Post
Hab ich schon :), aber ich will es eigentlich nicht weitergeben, weil ich ja ein Skype Multi-Tool hab und mir Konkurenz nicht so gut kommt. :D
Es gibt sehr wahrscheinlich eine Docu über die API, wo alles drinsteht, von daher brauchst du hier nicht auf geheim tun.

Quote:
Originally Posted by backtothetoast View Post
Eine Frage mal zu dem Tutorial, wie bekomme ich den Kontakt heraus, mit dem ich gerade chatte?
[Only registered and activated users can see links. Click Here To Register...]

PHP Code:
Imports SKYPE4COMLib

Public Class Form1
    
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        Dim Skype 
= New SKYPE4COMLib.Skype
        Dim Skype_ 
As New Skype
        Skype
.Attach(7False)
        
AddHandler Skype.MessageStatusAddressOf skype_MessageStatus
    End Sub

    
Public Sub skype_MessageStatus(ByVal msg As ChatMessageByVal status As TChatMessageStatus)
        If 
status TChatMessageStatus.cmsReceived Then //wenn eine nachricht ankommt
            
MsgBox(msg.FromDisplayName//namen ausgeben
        
End If
    
End Sub
End 
Class 
(nicht getestet)