'*** v8.3 *** www.dieseyer.de ******************************* ' ' Datei: icq6-verlauflesen.vbs ' Autor: mike-winxp@gmx.de ' Auf: www.dieseyer.de ' ' Skript zum Lesen einer Verlaufsdatei (von icq6; ICQ v6.x). ' Dazu einfach die "Messages.mdb"-Datei auf das Script ziehen ' und fallen lassen. Die Datei befindet sich (unter WinXP): ' C:\Dokumente und Einstellungen\[UserName]\Anwendungsdaten\ICQ\[ICQ Nummer]\Messages.mdb ' %APPDATA%\ICQ\[Ihre ICQ Nummer]\Messages.mdb ' '************************************************************ Option Explicit Dim shell, db, ie, objArgs, x, pfad, dok, i, antwort, userid, history, messenge, Title, Nummer, Farbe, zahl, Icq_killen ,prozess Set shell = CreateObject("WScript.Shell") Set db = CreateObject("ADODB.Connection") Set ie = CreateObject("InternetExplorer.Application") Set objArgs = WScript.Arguments For x = 0 To objArgs.Count - 1 pfad = objArgs(I) Next If pfad = "" Then pfad = shell.SpecialFolders("AppData") & "\ICQ\[Ihre ICQ Nummer]\Messages.mdb" ' Bitte tragen sie ihre ICQ-Nummer ein If instr(1, pfad, "[Ihre ICQ Nummer]", 1) > 1 Then Msgbox "Bitte passen Sie den Pfad an",16,"Error" : Wscript.Quit End If For Each prozess In GetObject("winmgmts:{impersonationLevel=impersonate,(Debug)}").ExecQuery ("SELECT * FROM Win32_Process") If Instr("ICQ.exe",prozess.Name) > 0 Then Icq_killen = Msgbox ("Anscheinend läuft ICQ noch. Um auf die Datenbank zugreifen zu können muss ICQ beendet werden" &_ vbCr & vbCr & "Wollen sie Icq jetzt beenden?" & vbCr &_ "Wählen Sie 'Ja' um ICQ jetzt zu beenden (ACHTUNG: Dadurch wird der Task ICQ.exe ""gekillt"")" & vbCr &_ "Wählen Sie 'Nein' um mit dem Script fortzufahren (Beenden Sie vorher ICQ manuell)" & vbCr &_ "Wählen Sie 'Abbrechen' um das Script abzubrechen" , 563 ,"ICQ läuft noch. Wie möchten sie fortfahren?") If Icq_killen = 7 Then Msgbox "Bitte beenden Sie ICQ jetzt!",64, "ICQ jetzt beenden" If Icq_killen = 2 Then wscript.Quit If Icq_killen = 6 Then prozess.Terminate(0) End If Next zahl = InputBox("Bitte geben Sie an, wieviele Nachrichten angezeigt werden sollen.", "Icq6 Verlauf", "500") If zahl = 0 Then Wscript.Quit ie.Navigate "about:blank" While ie.Busy Wend Set dok = ie.Document dok.Open dok.Writeln "Verlauf Icq6Datenbank wird gelesen. Bitte warten . . . " dok.Close ie.Visible = True wscript.sleep 100 shell.AppActivate("Verlauf Icq6") shell.SendKeys "% x" db.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & pfad) Set antwort = db.Execute("SELECT * FROM Messages" & " ORDER BY date DESC") Set userid = db.Execute("SELECT * FROM Users") Set history = db.Execute("SELECT * FROM ChatHistory") For i = 0 To zahl If antwort.EOF = True Then Exit For x = x + 1 : If x = 10 Then Wscript.Sleep 3 : x = 0 ' Soll für geringere Prozessorauslastung sorgen If "" & antwort(1) = "" Then Farbe = "red" Else ' black; maroon; green; olive; navy; purple; teal; gray; silver; red; lime; yellow; blue; fuchsia; aqua Farbe = "blue" End If messenge = "" & Left(antwort(6),6) & Mid(antwort(6),9,8) & " " &_ antwort(2) & " " & antwort(1) & "  " &_ antwort(8) & "" & messenge ' Damit die neueste Nachricht ganz oben steht muss es 'messenge = messenge & "....' antwort.MoveNext Next Title = "Verlauf Icq6Gespräch mit:
" Nummer = "User haben folgende Nummern:
" x = 0 Do Until userid.EOF x = x + 1 messenge = Replace(messenge,userid(0),userid(1)) messenge = Replace(messenge, history(0), x) Title = Title & userid(1) & " = " & x & ";   " Nummer = Nummer & userid(1) & " = " & userid(0) & ";   " userid.MoveNext history.MoveNext Loop Title = Title & "

Verlauf:
Die letzten " & zahl & " Nachrichten werden angezeitg
" &_ "" dok.Open dok.Write(Nummer & "

" & Title & "
eingehende Nachrichten      " &_ "ausgehende Nachrichten

 " & messenge) dok.Close
Datum/Uhrzeit
ID
Name
Nachricht