eigenen ICQ Status Checker erstellen

  • VB.NET

Es gibt 40 Antworten in diesem Thema. Der letzte Beitrag () ist von Manschula.

    eigenen ICQ Status Checker erstellen

    hi,



    ich programmiere seit kurzem mit Visual Basic 2008 Express. Auf der Homepage preisser.dynalias.org/preisser-it/?s=18 gibt es das programm ,, ICQ STATUS LOGGER ". Mit diesem programm kann man den Status jeder icq nummer herausfinden. Zum Beispiel: Ist die jenige person offline oder doch online??



    Weiß jemand von euch, wie dieses programm funktioniert. ich würde gerne so ein ähnliches programm schreiben, allerdingst weiß ich nicht wie ich anfangen soll. ( Wünscheswert wäre ein tipp für einen quellcode )



    ich hoffe mir kann jemand helfe.
    diese antworten sind recht gut, allerdingst bringen sie mir nicht wirklich was. Ich wollte, wenn es natürlich geht, direkt aus Visual Basic eine Verbindung mit dem ICQ server aufbauen. Danach sollte man die icq nummer der person in ein textfeld angeben, auf den button ,, überprüfen " klicken und in einem weiteren textfeld die antwort ,, offline " oder ,, online " bekommen.
    Folgendes Tutorial habe ich hier im Forum gefunden, mit dem man den Status aus einer ICQ Nummer herauslesen kann.

    VB.NET-Quellcode

    1. Module IcqOnlineCheck
    2. Public Function checkState(ByVal uin As String) As String
    3. Dim str As String = (New Net.WebClient()).DownloadString("http://www.icq.com/js/pcc.php?Uin=" & uin)
    4. Dim start As Short = Str.IndexOf("gl_status = gl_pcc_info\[6\] = ") + 32 '32 = Stringlänge
    5. Dim status As String = Str.Substring(start, 1) 'Der momentane ICQ-Status
    6. Select Case status
    7. Case 0
    8. status = "Offline"
    9. Case Else
    10. status = "Online"
    11. End Select
    12. Return status
    13. End Function
    14. End Module


    Im Tutorial steht, das man diesen Quellcode in ein Modul schreiben soll. Also gehen ich auf :

    Projekt --> Modul hinzufügen und kopieren diesen Quellcode hinein.

    Wenn ich jetzt auf F5 (Ausführen) klicke, passiert garnichts.

    Laut Tutorial soll das Programm ,, offline " oder ,, online " zeigen.

    Habe ich was falsch gemacht.

    Laut Tutorial kann man noch diese MessageBox einfügen:

    VB.NET-Quellcode

    1. MsgBox(ICQOnlineChecker.checkState("123456789")


    Allerdingst weiß ich nicht wo.
    @NEO , dieser Code hier kommt in ein Modul :

    VB.NET-Quellcode

    1. Module IcqOnlineCheck
    2. Public Function checkState(ByVal uin As String) As String
    3. Dim str As String = (New Net.WebClient()).DownloadString("http://www.icq.com/js/pcc.php?Uin=" & uin)
    4. Dim start As Short = Str.IndexOf("gl_status = gl_pcc_info\[6\] = ") + 32 '32 = Stringlänge
    5. Dim status As String = Str.Substring(start, 1) 'Der momentane ICQ-Status
    6. Select Case status
    7. Case 0
    8. status = "Offline"
    9. Case Else
    10. status = "Online"
    11. End Select
    12. Return status
    13. End Function
    14. End Module


    dieser in den quellcode... :


    VB.NET-Quellcode

    1. MsgBox(ICQOnlineChecker.checkState("123456789")

    mach lieber anstatt bereits zahlen , dass du es aus einer textbox ausliest sonst m,usst du immer den quellcode ändern.

    Wenn du nur COpy und Pase machst , dan kann auch nichts daraus werden ;)
    @manta656

    wenn ich diesen quellcode ( siehe unten ) in ein modul einfüge, dann ist ja alles noch ok.

    ( 0 fehler, 0 warnungen )

    VB.NET-Quellcode

    1. Module IcqOnlineCheck
    2. Public Function checkState(ByVal uin As String) As String
    3. Dim str As String = (New Net.WebClient()).DownloadString _
    4. ("http://www.icq.com/js/pcc.php?Uin=123456789" & uin) ' Soll ich die Zahlen 123456789 weg lassen?
    5. Dim start As Short = Str.IndexOf("gl_status = gl_pcc_info\[6\] = ") + 32 '32 = Stringlänge
    6. Dim status As String = Str.Substring(start, 1) 'Der momentane ICQ-Status
    7. Select Case status
    8. Case 0
    9. status = "Offline"
    10. Case Else
    11. status = "Online"
    12. End Select
    13. Return status
    14. End Function
    15. End Module


    wenn ich aber dann diesen quellcode

    VB.NET-Quellcode

    1. MsgBox(ICQOnlineChecker.checkState("123456789")


    in die form1.vb eingeben bekomme ich folgende fehler:

    1) Der Name "ICQOnlineChecker" wurde nicht deklariert.
    2) ")" erwartet ( siehe quellcode unten )

    VB.NET-Quellcode

    1. MsgBox(ICQOnlineChecker.checkState("123456789")) ' 2 runde Klammer hinten, anstatt eine


    Das Programm habe ich in die ,, Windows-Form-Anwendung " geschrieben oder sollte ich das Programm in
    eine andere Anwendung schreiben?
    eine zweite Klammer ist normal ... schau dir es mal genau an ...


    VB.NET-Quellcode

    1. MsgBox(ICQOnlineChecker.checkState("123456789"))


    es besteht aus denen Sachen :


    VB.NET-Quellcode

    1. MsgBox
    ist die message box

    VB.NET-Quellcode

    1. (ICQOnlineChecker.checkState)
    ist das modul

    VB.NET-Quellcode

    1. ("123456789")
    ist die icq nummer.

    und wie du siehst , hat die icq nummer und die aufrufung des moduls jeweils ein klammern paar , die beide zum schluss des codes sich schliessen...



    Hast du es in ein FormLoad oder ButtonClick event gemacht , oder wo hast du das hingeschrieben ?
    Ich habe diesen Quellcode

    VB.NET-Quellcode

    1. MsgBox(ICQOnlineChecker.checkState("123456789"))


    in einen Form_Load geschrieben.

    Hier der Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    3. Handles MyBase.Load
    4. MsgBox(ICQOnlineChecker.checkState("123456789"))
    5. End Sub
    6. End Class


    Und dennoch bekomme ich die Fehlermeldung, das ,, ICQOnlineChecker " nicht deklariert wurde.
    Muss ich den ,, ICQOnlineChecker " deklarieren ?

    VB.NET-Quellcode

    1. Module Module1
    2. Sub Main()
    3. Console.WriteLine("ICQ-Nummer, die gescannt werden soll:")
    4. Try
    5. Dim str As String = (New Net.WebClient()).DownloadString("http://www.icq.com/js/pcc.php?Uin=" & Console.ReadLine)
    6. Dim start As Short = str.IndexOf("gl_status = gl_pcc_info\[6\] = ") + 32
    7. Dim status As String = str.Substring(start, 1)
    8. Select Case status
    9. Case 0
    10. status = "Offline"
    11. Case Else
    12. status = "Online"
    13. End Select
    14. Console.WriteLine(status)
    15. Catch ex As Exception
    16. Console.WriteLine(ex.Message)
    17. Main()
    18. End Try
    19. Console.WriteLine("Erneute UIN scannen? y/n")
    20. Select Case Console.ReadLine
    21. Case "y"
    22. Main()
    23. Case "Y"
    24. Main()
    25. Case Else
    26. Exit Sub
    27. End Select
    28. End Sub
    29. End Module

    Ich habs mal etwas verändert und in eine Konsolenanwendung gepackt. Dafür ist ja eine Form zu viel. ;-)
    ich würde es gerne genauso haben wie es N_E_O wollte. ( in einer Windows Form )
    Und dennoch bekomme ich die Fehlermeldung, das ,, ICQOnlineChecker " nicht deklariert wurde.
    Diese Meldung kommt bei mir auch.

    und ich habe sicher Das Modul erstellt.
    Oder meint ihr etwas anders mit "erstellen" ?

    Meine Codes sehen so aus :

    VB.NET-Quellcode

    1. Module IcqOnlineCheck
    2. Public Function checkState(ByVal uin As String) As String
    3. Dim str As String = (New Net.WebClient()).DownloadString("http://www.icq.com/js/pcc.php?Uin=" & uin)
    4. Dim start As Short = Str.IndexOf("gl_status = gl_pcc_info\[6\] = ") + 32 '32 = Stringlänge
    5. Dim status As String = Str.Substring(start, 1)
    6. Select Case status
    7. Case 0
    8. status = "Offline"
    9. Case Else
    10. status = "Online"
    11. End Select
    12. Return status
    13. End Function
    14. End Module

    und :

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. MsgBox(ICQOnlineChecker.checkState(TextBox1.Text))
    4. End Sub
    5. End Class


    Ich bin mir sicher es fehlt irgendwo noch ein kleines Codeschnipsel, aber ich komme einfach nicht drauf
    @ Manschula

    Vielen Dank , Jetz klappt endlich

    So ein kleiner blöder Fehler ....


    Trotzdem wird bei vielen Konakten "online" angezeigt obwohl sie sicher off sind.

    VB.NET-Quellcode

    1. Select Case status
    2. Case 0
    3. status = "Offline"
    4. Case Else ' Liegt es evt daran, dass hier nach Case "Else" gefragt wird und so der Status "0" nicht so oft eintritt, aus irgendwelchen GRünden ??
    5. status = "Online"
    6. End Select