Rubrik: HTML/Internet/Netzwerk · Sonstiges | VB-Versionen: VB6 | 30.06.01 |
ICQ Pager Modul Beispiel, wie man eine ICQ-Nachricht aus der eigenen VB-Anwendung heraus versenden kann. | ||
Autor: Marcel Colley | Bewertung: | Views: 13.154 |
go.to/gigawin | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
ICQ - das wohl bekannteste und beliebteste Programm zum Chatten mit Freunden und Versenden von Kurz-Nachrichten. Unser heutiger Tipp zeigt, wie Sie eine solche ICQ-Message direkt aus Ihrer eigenen VB-Anwendung heraus versenden können.
Um das Beispiel auszuprobieren, erstellen Sie ein neues Projekt und fügen das Microsoft Internet Transfer Control ein (MSINET.OCX). Plazieren Sie eine Instanz des Inet-Controls auf die Form. Jetzt brauchen Sie noch ein paar Textboxen, für die benötigten Angaben, wie Empfänger-ICQ, Betreff, Nachricht, Name und EMail-Adresse. Benennen Sie die Textboxen txtICQNr, txtName, txtEMail, txtBetreff und txtNachricht und setzen Sie die Multiline-Eigenschaft der Nachrichten-Box auf True. Fügen Sie jetzt noch einen CommandButton cmdSend ein.
Und hier der Source:
' Nachricht absenden Private Sub cmdSend_Click() cmdSend.Visible = False ICQMessage txtICQNr, txtName.Text, txtEMail.Text, _ txtBetreff.Text, txtNachricht.Text cmdSend.Visible = True End Sub ' ICQ-Nachricht versenden Public Sub ICQMessage(ICQNummer As String, Name As String, _ EMail As String, Betreff As String, Nachricht As String) Dim r_name As String Dim r_Subject As String Dim r_Message As String Const ICQURL = "http://wwp.icq.com/scripts/WWPMsg.dll" ' Ist die Eingegebene ICQ Nummer überhaubt eine Zahl? If Not IsNumeric(ICQNummer) Then MsgBox "Es wurde eine ungültige oder falsche " & _ "ICQ Nummer eingegeben", 65, "ICQ Pager" Exit Sub End If ' Ist überhaubt ein Name eingegeben? If Trim$(Name) = "" Then MsgBox "Es wurde kein Name eingegeben", _ 65, "ICQ Pager" txtName.SetFocus Exit Sub End If ' Ist überhaubt eine eMailAdresse eingegeben? If Trim$(EMail) = "" Then MsgBox "Es wurde keine eMail Adresse eingegeben", _ 65, "ICQ Pager" txtEMail.SetFocus Exit Sub End If ' Ist überhaubt ein Betreff eingegeben? If Trim$(Betreff) = "" Then MsgBox "Es wurde noch kein Betreff eingegeben", _ 65, "ICQ Pager" txtBetreff.SetFocus Exit Sub End If ' Ist überhaubt eine Nachricht eingegeben? If Trim$(Nachricht) = "" Then MsgBox "Es wurde noch keine Nachricht eingegeben", _ 65, "ICQ Pager" txtNachricht.SetFocus Exit Sub End If ' Leerzeichen durch + ersetzen r_name = Replace(Trim$(Name), " ", "+") r_Subject = Replace(Trim$(Betreff), " ", "+") r_Message = Replace(Trim$(Nachricht), " ", "+") ' Zeilenumbrüche codieren r_Message = Replace(r_Message, vbCrLf, "%0d%0a") ' Absenden der Nachricht über das ' Microsoft Internet Transfer Control cmdSend.Visible = False Inet1.Execute ICQURL & "?from=" & r_name & _ "&fromemail=" & EMail & _ "&subject=" & r_Subject & _ "&body=" & r_Message & _ "&to=" & ICQNummer & _ "&Send=" & """" End Sub
Das war's dann auch schon. Beim Klicken auf den Sende-Button wird das Msg-Script WWPMsg.dll von der ICQ-URL geladen und alle entsprechenden Paramater übergeben:
from | Ihr Name |
fromemail | Ihre EMail-Adresse |
subject | Betreff |
body | Nachricht |
to | Empfänger (ICQ-Nr) |
Wichtiger Hinweis
Damit diese Funktion nicht für unliebsame Spam-Messages missbraucht werden kann, ist seitens des ICQ-Script eine kleine Sperre eingebaut. So lassen sich maximal 3-4 Nachrichten direkt hintereinander versenden - dann muss erstmal eine Pause eingelegt werden. Nach ein paar Minuten kann dann wieder die nächste Nachricht gesendet werden.