- Offizieller Beitrag
Hallo
So.. ich hab ma wider ein skript für euch.. es ist nicht besonders viel, und ich kann mir gut vorstellen das jetzt viele mekern werden weil sie die gui nich so hübsch finden (^^), aber ich find die GUI praktisch, und das programm (soweit ich es einschätzen kann^^) funktioniert einwandfrei, und das ist das eigentlich wichtige
Also.. was das programm kann:
- Es liest die autoit.de Shoutbox aus
- es wurden alle smiliys und alle pics rausgenommen
- man kann die GUI verkleinern und dann immer den letzen post in ner
kleinen gui sich anzeigen lassen - nun kann man auch endlcih shouten. Ist jetzt zwar nich direkt über php, wie ich es eigneltihc wollte^^ aber das ist auch ne gute lösung Funktion by Blubbkuh!
Im anhang sind auch noch ma par pics von dem Programm...
Source:
Spoiler anzeigen
#include <string.au3>
#include <array.au3>
#include <inet.au3>
#include <ie.au3>
#include <GuiListView.au3>
#include <GUIConstants.au3>
SplashTextOn("","Bitte Warten...",150,20,-1,-1,1)
[/autoit] [autoit][/autoit] [autoit]Global $oIE = _IECreate('http://www.autoit.de/xy_megashoutbox.php?page_shout',0,0,0)
[/autoit] [autoit][/autoit] [autoit]InetGet('http://www.olympus.net/update/help/helpimg/maximize_editor.gif', @TempDir & "\max.gif")
$minigui = GUICreate("", 400, 20, @DesktopWidth - 500, 0, $WS_POPUP, $WS_EX_TOPMOST)
GUISetCursor(9, 1, $minigui)
GUISetBkColor(0xffffff)
$List = GUICtrlCreateList("blalba: TEST", 50, 0, 350, 20, Default)
GUICtrlSetCursor(-1, 2)
$BigBut = GUICtrlCreatePic(@TempDir & "\max.gif", 30, 0, 20, 20, Default)
GUICtrlSetCursor(-1, 2)
GUIRegisterMsg(132, "WM_NCHITTEST")
$maingui = GUICreate("AutoIt.de ShoutBox - By GtaSpider", 388, 312, 190, 125, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_SIZEBOX, $WS_MAXIMIZEBOX))
$ListView = GUICtrlCreateListView("User|Nachricht", 8, 8, 377, 273)
GUICtrlSendMsg(-1, 0x101E, 0, 70)
GUICtrlSendMsg(-1, 0x101E, 1, 300)
$RefBut = GUICtrlCreateButton("Aktualiesieren", 8, 288, 75, 17, 0)
GUICtrlSetResizing(-1, 1)
$MiniBut = GUICtrlCreateButton("Verkleinern", 88, 288, 75, 17, 0)
GUICtrlSetResizing(-1, 1)
$shoutInp = GUICtrlCreateInput("", 171, 288, 194, 17)
GUICtrlSetState(-1,$GUI_FOCUS)
$shoutBut = GUICtrlCreateButton(">", 365, 288, 18, 17,$BS_DEFPUSHBUTTON )
AdlibEnable("_Refresh", 10000)
_Refresh()
_IELoadWait($oIE)
SplashOff()
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $RefBut
_Refresh()
Case $MiniBut
GUISetState(@SW_HIDE, $maingui)
GUISwitch($minigui)
GUISetState(@SW_SHOW, $minigui)
Case $shoutBut
_Shout (GUICtrlRead($shoutInp))
GUICtrlSetData($shoutInp,"")
_Refresh()
Case $BigBut
GUISetState(@SW_HIDE, $minigui)
GUISwitch($maingui)
GUISetState(@SW_SHOW, $maingui)
Case Else
EndSwitch
WEnd
;By Blubbkuh
Func _Shout ($sMessage)
$oForm = _IEFormGetObjByName($oIE, "bbform")
$o1 = _IEGetObjByName($oForm, "setting")
$o2 = _IEGetObjByName($oForm, "sid")
$o3 = _IEGetObjByName($oForm, "page_shout")
$o4 = _IEGetObjByName($oForm, "message")
_IEFormElementSetValue($o1, "save")
_IEFormElementSetValue($o2, "")
_IEFormElementSetValue($o3, "chat")
_IEFormElementSetValue($o4, $sMessage)
_IEFormSubmit($oForm)
EndFunc ;==>_Shout
Func _Refresh()
GUICtrlSetState($RefBut, $GUI_DISABLE)
_GUICtrlListViewDeleteAllItems($ListView)
$Source = _INetGetSource('http://www.autoit.de/xy_megashoutbox.php?page_shout=chat')
$UserArray = _StringBetween($Source, 'target="_blank" style="text-decoration:none"><b><', '></b></span></a></span></td>')
$MessageArray = _StringBetween($Source, '<td style="width:90%;vertical-align:middle"><span class="smallfont">', '</span>' & @LF & '</span>' & @LF & '</td>')
For $i = 0 To UBound($MessageArray) - 1
$MessageArray[$i] = StringReplace(StringReplace($MessageArray[$i], '<span class="sboxsecondrow">', ''), '<span class="sboxfirstrow">', '')
$MessageArray[$i] = StringReplace(StringReplace($MessageArray[$i], '>', '>'), '<', '<')
If StringInStr($MessageArray[$i], '<b><font size="2" color="#000">') Then
$aTmp = _StringBetween($MessageArray[$i], '<b><font size="2" color="#000">', '</font></b></td>')
$MessageArray[$i] = $aTmp[0]
EndIf
If StringInStr($MessageArray[$i], '<div align="left"><table border="1" class="input" align="center" style="border-color:red;color:black;background-color:white;border-style:dotted"><tr><td>') Then
$aTmp = _StringBetween($MessageArray[$i], '<div align="left"><table border="1" class="input" align="center" style="border-color:red;color:black;background-color:white;border-style:dotted"><tr><td>', '</td></tr></table>')
$MessageArray[$i] = $aTmp[0]
EndIf
If StringInStr($MessageArray[$i], '<span style="color:') Then
$aTmp = _StringBetween($MessageArray[$i], ';">', '</span>')
$MessageArray[$i] = ''
For $ii = 0 To UBound($aTmp) - 1
$MessageArray[$i] &= $aTmp[$ii]
Next
EndIf
If StringInStr($MessageArray[$i], '<a href="http://') Then
$aTmp = _StringBetween($MessageArray[$i], 'target="_blank">', '</a>')
$MessageArray[$i] = ''
For $ii = 0 To UBound($aTmp) - 1
$MessageArray[$i] &= $aTmp[$ii]
Next
EndIf
$MessageArray[$i] = StringStripWS(StringReplace(_StringBetweenDelete($MessageArray[$i], '<img src="', '/>'), @LF, ''), 3)
If StringInStr($MessageArray[$i], '<br />') Then
$aTmp = StringSplit($MessageArray[$i], '<br />', 1)
GUICtrlCreateListViewItem($UserArray[$i] & "|" & $aTmp[1], $ListView)
For $ii = 2 To $aTmp[0]
GUICtrlCreateListViewItem($UserArray[$i] & "|" & $aTmp[$ii], $ListView)
Next
Else
GUICtrlCreateListViewItem($UserArray[$i] & "|" & $MessageArray[$i], $ListView)
EndIf
Next
GUICtrlSetData($List, '')
GUICtrlSetData($List, $UserArray[UBound($MessageArray) - 1] & ": " & $MessageArray[UBound($MessageArray) - 1])
GUICtrlSetTip($List, $UserArray[UBound($MessageArray) - 1] & ": " & $MessageArray[UBound($MessageArray) - 1])
GUICtrlSetState($RefBut, $GUI_ENABLE)
EndFunc ;==>_Refresh
Func _StringBetweenDelete($sString, $sStart, $sEnd, $vCase = -1, $iSRE = 0)
Local $aStrBetw, $i, $iStrInStr, $sTmp, $aRet[1], $sRet
$aStrBetw = _StringBetween($sString, $sStart, $sEnd, $vCase, $iSRE)
If @error Then Return $sString
For $i = 0 To UBound($aStrBetw) - 1
$sString = StringReplace($sString, $sStart & $aStrBetw[$i] & $sEnd, '')
Next
Return StringReplace(StringReplace($sString, @LF, ''), ' ', ' ')
EndFunc ;==>_StringBetweenDelete
Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
If ($hWnd = $minigui) And ($iMsg = 132) Then Return 2
EndFunc ;==>WM_NCHITTEST
Func OnAutoItExit()
FileDelete(@TempDir & "\max.gif")
_IEQuit($oIE)
EndFunc ;==>OnAutoItExit
Mfg Spider