Mirc überwachung von einem Chan in einem kleinen Fenster

  • Hallo Leutz ,

    muß euch mal wieder etwas (nerfen) Fragen :)

    Möchte mir gern mit Autoit nen Progi Basteln das im Vordergrund nen Textfenster aufbaut und Schwebend über allen Anwendungen sichtbar ist , ähnlich dem Taskmanager. Das soll aber nicht alzu groß sein dachte so an 30 Zeichen breit und 5 Zeilen hoch. Mein Problem ist wie lese ich aus dem Chan im Mirc irgendwas aus?? muß ich dazu den Speicher bemühen oder geht das irgendwie direkt? Desweiteren wie sage ich dem Fenster du bist ganz oben?

    Vielen Dank für die Müh die ich euch gemacht habe :rofl:


    Gruß

  • Zitat

    Desweiteren wie sage ich dem Fenster du bist ganz oben?

    [autoit]

    $hGUI = GUICreate("Test", 800, 600, 0, 0, -1,$WS_EX_TOPMOST )

    [/autoit]

    Zu den anderen Fragen kann ich leider nix sagen, benutze kein mirc :)

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • Oder bau dir doch nen Skript was sich selber mit dem IRC Channel verbindet, quasi ein Monitor User, geht auf jedenfall und es wäre nicht von mirc abhängig.

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • In etwa soetwas:

    Spoiler anzeigen
    [autoit]


    #cs
    #include <GuiConstants.au3>
    ;~ $hGUI = GUICreate("GDI+", 800, 600, 0, 0, $WS_POPUP,BitOR($WS_EX_TOOLWINDOW,$WS_EX_TOPMOST ))
    $hGUI = GUICreate("Test", 800, 600, 0, 0, -1,$WS_EX_TOPMOST )
    GUISetBkColor(0x000000)
    $hWnd = WinGetHandle("GDI+")
    GUISetState()
    ConsoleWrite(ControlGetText("[#] mIRC [#] - [#WinFuture (SpotChat, McPoldy) [32] [+CmnrStT]: WinFuture - Das Windows Online Magazin | ACHTUNG! Von 6-22h gilt: Keine FSK18 Links/Gespräche!]","",32918) & @lf)
    ControlSetText("[#] mIRC [#] - [#WinFuture (SpotChat, McPoldy) [32] [+CmnrStT]: WinFuture - Das Windows Online Magazin | ACHTUNG! Von 6-22h gilt: Keine FSK18 Links/Gespräche!]","",32921,"hallo")
    ;~ while 1
    ;~ Sleep(250)
    ;~ WEnd
    #ce
    Opt("GUIOnEventMode", 1)
    Opt("OnExitFunc","_Exit")

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("{ESC}","_Exit")

    [/autoit] [autoit][/autoit] [autoit]

    #include <GuiConstants.au3>
    $hGUI = GUICreate("IRC Watcher", 800, 600, 0, 0, $WS_POPUP,BitOR($WS_EX_TOOLWINDOW,$WS_EX_TOPMOST ))
    $log = GUICtrlCreateEdit("",2,2,796,596)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    TCPStartup ()

    [/autoit] [autoit][/autoit] [autoit]

    Local $IRC_Server = 'irc.spotchat.org'
    Local $IRC_Port = 6667
    Local $IRC_Channle = '#winfuture'
    Local $IRC_Nick = 'AutoITMon'
    Local $IRC_Benutzer = 'AutoITMon'
    Local $socket = -1
    Local $IRC_recive = -1
    Local $nachricht, $von, $an

    [/autoit] [autoit][/autoit] [autoit]

    _Connect()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    AdlibEnable("_lesen",250)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(50)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Connect()
    $socket = TCPConnect( TCPNameToIP($IRC_Server), $IRC_Port)
    If $socket = -1 Then
    MsgBox(48,'Fehler','Es konnte keine Verbindung zum Server hergestellt werden.')
    _Exit()
    EndIf
    TCPSend($socket,"USER " & $IRC_Benutzer & " 0 * " & $IRC_Nick & @CRLF)
    Sleep(250)
    TCPSend($socket,"NICK " & $IRC_Nick & "" & @CRLF)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _lesen()

    $IRC_recive = TCPRecv( $socket, 2048 )
    While $IRC_recive <> ""
    if StringLeft($IRC_recive,4) = "PING" Then
    TCPSend($socket,StringReplace($IRC_recive,"PING","PONG") & @CRLF)
    ElseIf StringInStr($IRC_recive,"/MOTD",2) > 0 then
    TCPSend($socket,"join " & $IRC_Channle & @CRLF)
    Else
    If StringInStr($IRC_recive,"privmsg") > 0 Then GUICtrlSetData($log,GUICtrlRead($log) & _SplitText($IRC_recive))
    EndIf
    $IRC_recive = TCPRecv( $socket, 2048 )
    GUICtrlSetState($log,$GUI_FOCUS)
    send("^{end}")
    WEnd
    If $socket = -1 Then
    TCPCloseSocket($socket)
    TCPShutdown()
    Exit
    EndIf

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _SplitText($str)
    $time = @HOUR & ":" & @MIN & ":" & @SEC
    $arr1 = StringSplit($str,":")
    $nachricht = $arr1[3]
    $arr1 = StringSplit($arr1[2],"!")
    $von = $arr1[1]
    $an = StringTrimLeft(StringTrimRight(StringRight($arr1[2],StringLen($arr1[2]) - StringInStr($arr1[2],"privmsg") - 6),1),1)
    ConsoleWrite($IRC_Channle & " = " & $an & @LF)
    If $an = $IRC_Channle Then
    Return '(' & $time & ') ' & $von & ": " & $nachricht
    ElseIf $an = $IRC_Nick Then
    Return '(' & $time & ') ==>' & $von & ": " & $nachricht
    Else
    return -1
    EndIf
    EndFunc
    Func _Exit()
    AdlibDisable()
    TCPCloseSocket($socket)
    TCPShutdown()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • Das wäre ja uch eine Lösung , quasi nen IRCBOT zu scripten...

    Werde mir das mal genauer ansehen , und werde mal sehen was sich für mich am besten lohnt ;)

    Danke wenn ich noch fragen habe werde ich diese hier noch Posten.


    Gruß

    • Offizieller Beitrag

    Nicht nur in Arbeit ;) , mein IRC-Bot ( Gucki heißt er :D ) ist schon voll lebensfähig.
    Was er kann:
    - Reaktion auf neuen User im Channel od. Verlassen des Channels
    - Aktionen von Usern ( /me Aktion ) werden kommentiert
    - Reaktion auf Stichworte
    - dumme Sprüche, wenn zu lange "ge-idled" wird
    - ich kann ihn 'sprechen' lassen, indem ich ihm eine PN schicke, die er dann als eigenen Text wiedergibt - kommt voll gut, dadurch wird er richtig lebendig :rofl:
    - natürlich User-Mode setzen (kick & ban) - auch das muß manchmal sein, z.B. bei Bad-Words

    Wenn ihr möchtet, schick ich ihn mal in unseren Autoit IRC-Chat.

    Den Basis-Clienten findet ihr hier: Basis-Client für IRC-Chat

  • Ja , super teil nur leider kommt beim connecten immer "not responding"

    Achja versuche auf irc.firstclassirc.com:6667 zu connecten schlägt immer fehl, auf deren seite steht auch das die das Ping / Pong deaktiviert haben , deshalb erkennt er ja nicht ob er online ist oder nicht...

    Deshalb dachte ich direkt aus dem Mirc alles auzulesen , gibt es zufällig schon eine UDF dafür?


    Habe es mal einfach mit den logs gelöst .... nur müßte jetzt ne schleife basteln die die log in einigen Zeitabständen neu einließt und alleine auf die letzte zeile Springt ;)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <file.au3>
    Dim $path = 'C:\Dokumente und Einstellungen\meinaccount\Anwendungsdaten\mIRC\logs\channel.log'
    GUICreate("IRC-log-Auslesen",450,300)
    GUISetState(@sw_show)
    $id_edit1=GUICtrlCreateEdit(fileread($path),11,10,425,270,-1,-1)
    While 1
    $msg=GUIGetMsg()
    If $msg=$GUI_EVENT_CLOSE Then ExitLoop
    WEnd

    [/autoit]


    Gruß

    2 Mal editiert, zuletzt von Agent00 (21. Februar 2008 um 17:48)