Autoit.de Spoiler-Reader V2.4

  • Hallo Oscar ,

    kannst du einen Link posten, der bei dir funktioniert, würde den Spoiler-Reader gerne bei mir zum laufen bringen. Aber wie gesagt ich denke es hängt mit PCTools zusammen, es müsste mich zumindest beim aller ersten Versuch des Spoilerreaders eine Internetverbindung aufzubauen bei mir nachfragen, ob ich dies global oder nur für diese Sitzung zulassen möchte, könnte auch meine sehr schmale Bandbreite sein Mobil mit EDGE und im Hintergrund läuft ein Download von Windows 7. Wenn dieser fertg ist, möchte ich mal ausführlicher testen,

    mfg (Auto)Bert

  • Hallo funkey,

    auch von mir Erfolgsmeldung, danke und großes Lob :thumbup: , funktioniert mit Tabs im Explorer und auch in Scite,

    ps.: meine Firewall hat sich nicht gemeldet (auch egal), nur das AutoIt-Forum, war der Meinung ich sei mal kurz abwesend gewesen und hat mich mit willkommen zurück begrüsst, als ich auf antworten geklickt hab (erst recht egal, bzw. netter Zug vom Forum)

    Edit1: ich spiel mit dem Gedanken, ein Archivsystem für eigene Skripte, bzw. Codeschnipsel zu erstellen, hättest du etwas dagegen, wenn ich deine Routinen mit einbaue Falls ich das mache gibts das ganze natürlich mit Source für dich und alle anderen ( Oscar fällt mir da jetzt schon ein) von denen ich Routinen einbaue und Alina (ich weiss, dass sie sich sowas wünscht), Ehrensache

    Edit2: jetzt werden leider auch Links kopiert, die keinen Spoiler haben, z.B. https://autoit.de/index.php?page…93834#post93834 oder diesen, wobei bei der zweiten Art es nützlich sein könnte die Dateianhänge herunterzuladen, der erste hat weder Spoiler, noch Dateianhang. Ich bin darauf gestossen, weil ich gerne auf den Permalink verweise, wenn ich mich auf andere Seiten beziehe. Lösungsmöglichkeit MsgBox mit Ja/Nein und Timeout dann nein, kann ich mir ja jetzt seber einbauen (hoff ich doch)
    Ich befürchte für dich, das jetzt noch viele Wünsche auf dich zukommen werden, das Teil besitzt ein riesiges Potential :thumbup:

    Edit3: Edit1 hatte ich von 14.05.09 2.00 bis jetzt herausgenommen (Grund siehe: https://autoit.de/index.php?page…93877#post93877 Projektidee sollte noch nicht allgemein bekannt werden)
    mfg (Auto)Bert

    5 Mal editiert, zuletzt von AutoBert (15. Mai 2009 um 12:15)

  • Ich bin wohl zu "blond" um das Tool richtig anzuwenden.
    Bitte gibt mir das Bilderbuch dazu ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hallo hunkey,

    da ich den Spoiler-Reader jetz öfter nutze, ist mir aufgefallen, dass es noch ein paar kleine Bugs gibt bzw. da ich gerne auf Permalinks verweise habe ich eine MsgBox in die Func _CheckCode eingefügt:

    Spoiler anzeigen
    [autoit]

    Func _CheckCode()
    Local $sCode, $sCodeSpoiler, $iThreadStart, $iThreadStop, $iLast, $iCount = 0, $sURL = ClipGet()
    If Not StringInStr($sURL, 'autoit.de/index.php?page=Thread&postID=') Or StringLeft($sURL, 7) <> 'http://' Then Return

    if MsgBox(32+4+256,"Spoiler-Reader","soll nach evtl. Spoiler-Inhalten gesucht werden?",5) <> 6 then Return <-----------------
    ;ja = 6, nein =7 , Timeout ist -1

    TrayTip('Bitte warten', 'Quellcode wird geladen', 20, 1)
    $sCode = _INetGetSource($sURL)
    If @error Then
    TrayTip('Fehler', 'Quellcode konnte nicht geladen weden!', 10, 3)
    Return
    EndIf
    TrayTip('Tip löschen', '', 0)
    $iPost = StringTrimLeft($sURL, StringInStr($sURL, '#post', 0, -1) + 4)

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

    $iThreadStart = StringInStr($sCode, '#post' & $iPost)
    $sCode = StringTrimLeft($sCode, $iThreadStart)
    $iBeitrag = StringTrimLeft($sCode, StringInStr($sCode, 'Permalink zum ') + 13)
    $iBeitrag = StringLeft($iBeitrag, StringInStr($iBeitrag, '.') - 1)

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

    $iLast = StringInStr($sCode, 'Permalink zum ', 0, 2)
    If $iLast <> 0 Then $sCode = StringLeft($sCode, $iLast)
    Do
    $iCount += 1
    Until StringInStr($sCode, '<td class="codeLines">', 0, $iCount * 6) = 0

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

    For $i = 1 To $iCount
    $iThreadStart = StringInStr($sCode, '<td class="codeLines">', 0, ($i * 3) + $i)
    $sCodeSpoiler = StringTrimLeft($sCode, $iThreadStart - 1)
    $iThreadStop = StringInStr($sCodeSpoiler, '</pre>')
    $sCodeSpoiler = StringLeft($sCodeSpoiler, $iThreadStop - 1)
    $sCodeSpoiler = StringTrimLeft(_Code2Script($sCodeSpoiler), 6) ;Tabulatoren vor dem Code entfernen
    _OpenAutoitCode(';--> ' & $sURL & @CRLF & @CRLF & $sCodeSpoiler, $iPost, $iBeitrag, $i)
    Next
    EndFunc ;==>_CheckCode

    [/autoit]

    siehe mein Edit in #24, zusätzlich kommt der Wunsch auf auch kleine Schnipsel ohne Spoiler und Dateianhänge herunterladen zu können, dies möchte ich aber dir überlassen

    Alina ein kleine Erklärung ist hier https://autoit.de/index.php?page…93591#post93591 zu finden,

    mfg (Auto)Bert

  • Okay, das habe ich jetzt, aber dann kommt im SciTe nur der Link, der in der URl-Leiste bei Firefox steht.
    Ich dachte das er gleich das Script aus dem beitrag mit einfügt ;) Das wäre dann der Turboknopf für Helfer & Helferinnen.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    funkey . Find ich Obergeil das Teil. Endlich nimmer das selektieren und kopieren, einfügen ,Datei Speichern unter .... Klasse Tool 8):thumbup:

  • Raupi .

    Ja, das ist ein super Tool !!!

    Habe es nun auf dem Desktop und afür habe ich extra die "Dr. Kaiser"-Karte deaktiviert, damit ich es nicht jedes mal neu auf den Desktop packen muß.

    Ich frage mich nur, wie ist er auf die Idee gekommen das zu entwickeln? Schräg und genial !!!

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Danke für die super Kommentare! Freut mich wenn ihr das Tool nützlich findet!
    [Blockierte Grafik: http://home.pages.at/misc/zd2002/images/Danksagender_Zivi_Verbeugung_nach_links.gif]

    Zitat von AutoBert

    zusätzlich kommt der Wunsch auf auch kleine Schnipsel ohne Spoiler und Dateianhänge herunterladen zu können, dies möchte ich aber dir überlassen


    Soll ich wirklich noch einbauen, dass auch angehängte Dateien sofort downgeloadet werden?

  • Hallo funkey,

    Zitat

    Danke für die super Kommentare! Freut mich wenn ihr das Tool nützlich findet!


    Soll ich wirklich noch einbauen, dass auch angehängte Dateien sofort downgeloadet werden?

    eigentlich ja, aber es ging ja die ganze Zeit auch ohne den automatischen Download. Also geniess du ersteinmal deinen Urlaub,

    mfg (Auto)Bert

  • Hi funkey,

    ich finde dein Skript absolute Klasse :thumbup: und es hat mich angeregt, mal ein wenig rumzuprobieren.
    Habe deine V2.2 beta als Grundlage genommen und dabei ist eine Erweiterung deines Skripts um folgende Fähigkeiten herausgekommen:

    - Neben AutoIt-Quelltexten werden auch normale (mit dem Code-Button # eingefügte) Quelltexte ausgelesen (vor allem für ältere Posts sinnvoll).
    - Der Dateiname enthält den Thread-Titel.
    - Mehrere angehängte Dateien werden korrekt eingelesen.
    - Download auch von Zip- und Rar-Dateien.
    - Info-Tooltip über gefundene Dateien/Objekte.
    - Der heruntergeladene Code enthält einen Kommentarblock mit Adresse des Beitrags und Thread-Titel.

    Hab es mal als V2.3 Ashpool beta betitelt, um Verwechslungen zu vermeiden:

    Neue Version im Post 37

    Was halten du und die anderen AutoIt-ler davon? Sind das sinnvolle Ergänzungen oder eher nicht?
    Gibts Probleme mit dem Skript?

    Gruß Ashpool

    Gruß Ashpool

    Zitat von mir

    Bin immer wieder erstaunt, wie begrenzt ein Horizont sein kann.

    4 Mal editiert, zuletzt von Ashpool (21. Mai 2009 um 17:36)

  • Hallo Ashpool,

    Funkey ist in Urlaub, siehe https://autoit.de/index.php?page…94099#post94099. Da wirst du wohl etwas auf Anwort warten müssen, ich werd es morgen mal etwas testen ob's funzt und dann in diesem Beitrag das Ergebnis melden,

    Edit1: ich hab jetzt nur mal diesen Thread getestet. Ergebnis:

    • #1 Anhang = richtig
    • #2 Codeschnipsel = richtig
    • #3 Codeschnipsel = richtig
    • #4 fremder Code für Userscript (FF?) aber Anhang fehlt
    • #13 nichts = richtig zwar Spoiler aber kein AutoIt-Code
    • 20 AutoItcode = richtig
    • #26 nichts
    • #34 Anhang = alles
    • #35 nichts

    Wenn AutoIt-Code und Anhang dann kommt immer nur der Anhang.
    Ich teste ja gerade selbst für mein Projekt (Stand Machbarkeitsstudie) siehe https://autoit.de/index.php?page…93877#post93877 Ich will allerdings unbedingt den auch noch den Author und die Überschrift (ist bei #1 unbedingt nötig) aus dem Download ermitteln (später vielleich auch noch den geschriebenen Text, mit Formtierung (Schrift und Links higlighten interne auch mit URL, fremde?). Wenn ich da auf ungewöhnliche Seiten stosse, kann ich da ja deine Beta auch gleich testen

    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (21. Mai 2009 um 04:29)

  • autoBert: Danke für dein Feedback!

    Das von dir bemängelte Fehlverhalten habe ich korrigiert und die neue Version mit den Posts aus diesem Thread getestet.

    Neue Version im Post 40!

    Freue mich über jede Kritik!

    Gruß Ashpool

    [edit] Mit den Skripten in diesem Post funktioniert es leider nicht, ich weiß aber, woran es liegt und arbeite daran. X(

    Gruß Ashpool

    Zitat von mir

    Bin immer wieder erstaunt, wie begrenzt ein Horizont sein kann.

    3 Mal editiert, zuletzt von Ashpool (26. Mai 2009 um 21:16)

  • Author und die Überschrift (ist bei #1 unbedingt nötig) aus dem Download ermitteln


    Hast du schon Code getestet? Sollte eigentlich nicht so schwierig sein!

    Gruß Ashpool

    Zitat von mir

    Bin immer wieder erstaunt, wie begrenzt ein Horizont sein kann.

  • Hallo Ashpool,

    für das Auslesen aus dem Board, noch nicht ausser dem Grundschema im OnEventModus mit Hinergrundbild und transparentem Vordergrund inkl. Kontrolls hab ich noch keine einzige Programmzeile geschrieben. Ich hab bis jetzt ein paarmal Seiten mit Kompozer den Quelltext über die Suchen funktion gecheckt, hat bis jetzt immer geklappt, trotzdem graut es mir allein wenn ich den Quelltext anschaue. Außerdem hab ich im Moment zuviele (auch unnötige) Baustellen. Auch hoffe ich dass noch ein paar Ideen einfliessen, falls du welche hast kannst du sie ja hier posten oder als PN.

    mfg (Auto)Bert

  • Neue Version des AutoIt-Source-Readers (V2.3.3 Ashpool Beta) online!

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------
    AutoIt Version: 3.3.0.0
    Author: funkey (enhanced by Ashpool)
    Date: 26.05.2009
    Script Version: 2.3.3 Ashpool Beta
    Script Function:
    Dieses Skript liest Autoit-Skripts und Dateianhänge aus Beiträgen des
    Forums 'Autoit.de' aus.
    Das Skript läuft im Hintergrund und überwacht die Zwischenablage.
    Wenn sich dort ein Permalink zu einem Post befindet, wird der Quellcode
    ausgelesen und in Scite geöffnet, außerdem werden Dateianhänge der Formate
    .au3, .zip und .rar heruntergeladen.
    Viel Spaß mit diesem Skript!
    #ce ----------------------------------------------------------------------------

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

    #include <Inet.au3>
    #include <WindowsConstants.au3>

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

    Opt("TrayMenuMode", 1)
    Opt("TrayOnEventMode", 1)
    Opt("MustDeclareVars", 1)

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

    Global $title = 'Autoit.de Source-Reader'
    Global $iBeitrag, $iPostID, $sURL, $iOn = True
    Global $sTopic = "", $sTopicUTF = ""
    Global $hGui = GUICreate($title, 0, 0)
    Global $origHWND = DllCall("user32.dll", "hwnd", "SetClipboardViewer", "hwnd", $hGui)
    $origHWND = $origHWND[0]

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

    ; Objektvariable zur Umlautersetzung und gegen verbotene Zeichen
    Global $colKeys
    Global $oUml = ObjCreate("Scripting.Dictionary") ; Dank an 'BugFix'
    ;$oUml.Add('ä', 'ae')
    ;$oUml.Add('Ä', 'Ae')
    ;$oUml.Add('ö', 'oe')
    ;$oUml.Add('Ö', 'Oe')
    ;$oUml.Add('ü', 'ue')
    ;$oUml.Add('Ü', 'Ue')
    ;$oUml.Add('ß', 'ss')
    $oUml.Add('µ', 'µ')
    $oUml.Add('ö', 'ö')
    $oUml.Add('ü', 'ü')
    $oUml.Add('ä', 'ä')
    $oUml.Add('ß', 'ß')
    $oUml.Add('Ä', 'Ä')
    $oUml.Add('Ö', 'Ö')
    $oUml.Add('Ãœ', 'Ü')
    $oUml.Add('/', ' oder ')
    $oUml.Add('\', ' - ')
    $oUml.Add('&amp;', '&')
    $oUml.Add(':', '_')
    $oUml.Add('?', '')
    $oUml.Add('!', '')
    $oUml.Add('|', '-')
    $oUml.Add(';', '_')
    $colKeys = $oUml.Keys

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

    GUIRegisterMsg($WM_DRAWCLIPBOARD, "OnClipBoardChange")
    GUIRegisterMsg($WM_CHANGECBCHAIN, "OnClipBoardViewerChange")

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

    HotKeySet('{F9}', '_OnOff')

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

    ; Tray initialisieren
    TraySetToolTip($title & @CRLF & ' ist aktiv!')
    Global $TrayInfo = TrayCreateMenu('Info')
    TrayCreateItem('funkey und Ashpool wünschen allen Usern von Autoit.de viel Spaß!', $TrayInfo)
    TrayCreateItem('')
    Global $TrayAktiv = TrayCreateItem('Deaktivieren F9')
    TrayItemSetOnEvent(-1, '_OnOff')
    TrayCreateItem('')
    TrayCreateItem('Beenden')
    TrayItemSetOnEvent(-1, '_Ende')

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

    While 1
    Sleep(10000)
    WEnd

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

    Func _CheckCode()
    Local $ThreadID, $ThreadTitel, $sCode, $sCodeSpoiler, $sCodeSpoilerOld, $sFileName, $iFileStart, $iPostStart, $iPostStop, $iNext
    Local $InfoN = '', $InfoA = '', $InfoF = ''
    If ClipGet() = $sURL Then Return
    $sURL = ClipGet()
    If Not StringInStr($sURL, 'autoit.de/index.php?page=Thread&postID=') Or StringLeft($sURL, 7) <> 'http://' Or Not $iOn Then Return
    TrayTip('Bitte warten', 'Quellcode wird geladen', 20, 1)
    $sCode = _INetGetSource($sURL)
    If @error Then
    TrayTip('Fehler', 'Quellcode konnte nicht geladen werden!', 10, 3)
    Return
    EndIf
    TrayTip('Tip löschen', '', 0)

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

    ; den WebCode schonmal vorkürzen und normalisieren
    $sCode = StringTrimLeft($sCode, StringInStr($sCode, '<div class="headlineContainer">'))
    $sCode = StringReplace($sCode, '&amp;', '&')

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

    ; ThreadID ermitteln
    $ThreadID = (StringTrimLeft($sCode, StringInStr($sCode, '"threadTitle') + 11))
    $ThreadID = StringLeft($ThreadID, StringInStr($ThreadID, '">') - 1)

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

    ; Titel des Threads ermitteln
    $ThreadTitel = StringTrimLeft($sCode, StringInStr($sCode, 'threadID=' & $ThreadID))
    $ThreadTitel = StringTrimLeft($ThreadTitel, StringInStr($ThreadTitel, '">') + 1)
    $ThreadTitel = StringLeft($ThreadTitel, StringInStr($ThreadTitel, '</a>') - 1)

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

    ; Code vor der erstmaligen Nennung des gewünschten Posts abschneiden
    $sCode = StringTrimLeft($sCode, StringInStr($sURL, 'postID=') - 1)

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

    ; ID des gewählten Beitrags ermitteln
    $iPostID = StringMid($sURL, StringInStr($sURL, 'postID=') + 7, StringInStr($sURL, '#') - (StringInStr($sURL, 'postID=') + 7))

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

    ; Überschrift des aktuellen Beitrags ermitteln
    $sTopic = StringTrimLeft($sCode, StringInStr($sCode, 'postTopic' & $iPostID & '"><span>') + 16 + StringLen($iPostID))
    $sTopic = StringLeft($sTopic, StringInStr($sTopic, "</span>") - 1)

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

    ; wenn der Post keine Überschrift trägt, dann den Thread-Titel verwenden
    If $sTopic = "" Then $sTopic = $ThreadTitel
    $sTopicUTF = $sTopic

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

    ; UTF8-Umlaute und verbotene Zeichen ersetzen (wichtig für Dateinamen)
    For $strKey In $colKeys
    If StringInStr($sTopic, $strKey, 1) Then $sTopic = StringReplace($sTopic, $strKey, $oUml.Item($strKey))
    Next

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

    ; Beginn des gewählten Posts ermitteln und alles davor wegschneiden
    $iPostStart = StringInStr($sCode, 'postID=' & $iPostID & '#post' & $iPostID & '" title') + 2 * StringLen($iPostID) + 18
    $sCode = StringTrimLeft($sCode, $iPostStart)

    ; gewählten Beitrag ermitteln
    $iBeitrag = StringTrimLeft($sCode, StringInStr($sCode, '"Permalink zum ') + 14)
    $iBeitrag = StringLeft($iBeitrag, StringInStr($iBeitrag, '.') - 1)
    ; wenn es weitere Beiträge gibt, die dann abschneiden
    $iNext = StringInStr($sCode, '"Permalink zum ', 0, 2)
    If $iNext <> 0 Then $sCode = StringLeft($sCode, $iNext)

    ; Dateianhänge ermitteln
    If Not FileExists(@ScriptDir & '\Autoit-Downloads') Then DirCreate(@ScriptDir & '\Autoit-Downloads')
    Local $iCountF = 0
    Local $sCodeF = $sCode
    Local $sLinkPrefix = 'index.php?page=Attach' & 'ment&attachmentID=' ; Trennung, um den eigenen Code zu überlisten
    Local $sSearchAttachmentID = 'href="' & $sLinkPrefix
    While StringInStr($sCodeF, $sLinkPrefix) <> 0
    $iFileStart = StringInStr($sCodeF, $sSearchAttachmentID) + StringLen($sSearchAttachmentID) - 1
    $sFileName = StringTrimLeft($sCodeF, $iFileStart)
    $sFileName = StringTrimLeft($sFileName, StringInStr($sFileName, '">') + 1)
    $sFileName = StringLeft($sFileName, StringInStr($sFileName, '</a>') - 1)
    For $strKey In $colKeys
    If StringInStr($sFileName, $strKey, 1) Then $sFileName = StringReplace($sFileName, $strKey, $oUml.Item($strKey))
    Next
    $sCodeF = StringTrimLeft($sCodeF, $iFileStart)
    If StringRight($sFileName, 4) = '.au3' Or StringRight($sFileName, 4) = '.zip' Or StringRight($sFileName, 4) = '.rar' Then
    Local $sLink = 'http://www.autoit.de/' & $sLinkPrefix & StringLeft($sCodeF, StringInStr($sCodeF, '">') - 1)
    InetGet($sLink, @ScriptDir & '\Autoit-Downloads\' & $sFileName, 1, 0)
    $iCountF += 1
    If StringRight($sFileName, 4) = '.au3' Then
    Run(RegRead("HKLM\SOFTWARE\Autoit v3\Autoit", "Installdir") & '\SciTE\SciTE.exe "' & @ScriptDir & '\Autoit-Downloads\' & $sFileName & '"')
    EndIf
    EndIf
    WEnd
    Switch $iCountF
    Case 0
    $InfoF = 'Es wurde kein Dateianhang gefunden!'
    Case 1
    $InfoF = 'Es wurde 1 Dateianhang gefunden!'
    Case Else
    $InfoF = 'Es wurden ' & $iCountF & ' Dateianhänge gefunden!'
    EndSwitch

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

    ; Autoit-Quellcode-Boxen ermitteln
    $sCodeSpoilerOld = ""
    $sCodeSpoiler = ""
    Local $iCountA = 0
    Local $sCodeA = $sCode
    While StringInStr($sCodeA, '<h3>AutoIt-Quellcode</h3>') <> 0
    $sCodeSpoilerOld = $sCodeSpoiler
    $iPostStart = StringInStr($sCodeA, '<h3>AutoIt-Quellcode</h3>')
    $sCodeA = StringTrimLeft($sCodeA, $iPostStart - 1)
    $iPostStart = StringInStr($sCodeA, '<td class="codeLines">')
    $sCodeA = StringTrimLeft($sCodeA, $iPostStart - 1)
    $iPostStop = StringInStr($sCodeA, '</pre>' & @LF)
    $sCodeSpoiler = StringLeft($sCodeA, $iPostStop - 1)
    $sCodeSpoiler = StringTrimLeft(_Code2Script($sCodeSpoiler), 6) ;Tabulatoren vor dem Code entfernen
    If $sCodeSpoiler = "" Then ContinueLoop
    If $sCodeSpoiler <> $sCodeSpoilerOld Then
    $iCountA += 1
    _OpenAutoitCode('#cs **************************************************************************' & @CRLF & @CRLF & @TAB & $sTopicUTF & @CRLF & @CRLF & @TAB & $sURL & @CRLF & @CRLF & '#ce **************************************************************************' & @CRLF & @CRLF & $sCodeSpoiler, $sTopic, $iPostID, $iBeitrag, $iCountA)
    EndIf
    WEnd
    Switch $iCountA
    Case 0
    $InfoA = 'Es wurde kein AutoIt-Quellcode gefunden!'
    Case 1
    $InfoA = 'Es wurde 1 AutoIt-Quellcode gefunden!'
    Case Else
    $InfoA = 'Es wurden ' & $iCountA & ' AutoIt-Quellcodes gefunden!'
    EndSwitch

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

    ; Normale Quellcode-Boxen ermitteln
    $sCodeSpoilerOld = ""
    $sCodeSpoiler = ""
    Local $iCountN = 0
    Local $sCodeN = $sCode
    While StringInStr($sCodeN, '<h3>Quellcode</h3>') <> 0
    $sCodeSpoilerOld = $sCodeSpoiler
    $iPostStart = StringInStr($sCodeN, '<h3>Quellcode</h3>')
    $sCodeN = StringTrimLeft($sCodeN, $iPostStart - 1)
    $iPostStart = StringInStr($sCodeN, '<td class="codeLines">')
    $sCodeN = StringTrimLeft($sCodeN, $iPostStart - 1)
    $iPostStop = StringInStr($sCodeN, '</pre>' & @LF)
    $sCodeSpoiler = StringLeft($sCodeN, $iPostStop - 1)
    $sCodeSpoiler = StringTrimLeft(_Code2Script($sCodeSpoiler), 6) ;Tabulatoren vor dem Code entfernen
    If $sCodeSpoiler = "" Then ContinueLoop
    If $sCodeSpoiler <> $sCodeSpoilerOld Then
    $iCountN += 1
    _OpenAutoitCode('#cs **************************************************************************' & @CRLF & @CRLF & @TAB & $sTopicUTF & @CRLF & @CRLF & @TAB & $sURL & @CRLF & @CRLF & '#ce **************************************************************************' & @CRLF & @CRLF & $sCodeSpoiler, $sTopic, $iPostID, $iBeitrag, $iCountN + $iCountA)
    EndIf
    WEnd
    Switch $iCountN
    Case 0
    $InfoN = 'Es wurde kein anderer Quellcode gefunden!'
    Case 1
    $InfoN = 'Es wurde 1 anderer Quellcode gefunden!'
    Case Else
    $InfoN = 'Es wurden ' & $iCountN & ' andere Quellcodes gefunden!'
    EndSwitch

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

    TrayTip('Info', $InfoA & @CRLF & @CRLF & $InfoN & @CRLF & @CRLF & $InfoF & @CRLF, 1, 1)
    EndFunc ;==>_CheckCode

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

    Func _OpenAutoitCode($sCode, $sTopic, $sPost, $sBeitrag, $iSpoiler)
    Local $hfile, $file = @ScriptDir & "\Spoiler\" & $sTopic & "_Post_" & $sPost & "_Beitrag_" & $sBeitrag & "_Skript_" & $iSpoiler & ".au3"
    If $sCode <> "" Then
    $hfile = FileOpen($file, 10)
    FileWrite($hfile, $sCode)
    FileClose($hfile)
    $hfile = FileOpen($file, 128)
    $sCode = FileRead($hfile)
    FileClose($hfile)
    $hfile = FileOpen($file, 10)
    FileWrite($hfile, $sCode)
    FileClose($hfile)
    Run(RegRead("HKLM\SOFTWARE\Autoit v3\Autoit", "Installdir") & '\SciTE\SciTE.exe "' & $file & '"')
    EndIf
    EndFunc ;==>_OpenAutoitCode

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

    Func _Code2Script($code)
    Local $Skript
    $Skript = StringRegExpReplace($code, "(<.+?>)", "") ;Danke 'Oscar' für diesen regulären Ausdruck!
    $Skript = StringReplace($Skript, "&gt;", ">")
    $Skript = StringReplace($Skript, "&lt;", "<")
    $Skript = StringReplace($Skript, "&amp;", "&")
    $Skript = StringReplace($Skript, "&quot;", '"')
    Return $Skript
    EndFunc ;==>_Code2Script

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

    Func _OnOff()
    $iOn = Not $iOn
    If $iOn Then
    TraySetIcon()
    TraySetToolTip($title & @CRLF & ' ist aktiv!')
    TrayItemSetText($TrayAktiv, 'Deaktivieren')
    Else
    TraySetIcon('stop')
    TraySetToolTip($title & @CRLF & ' ist nicht aktiv!')
    TrayItemSetText($TrayAktiv, 'Aktivieren')
    EndIf
    EndFunc ;==>_OnOff

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

    Func _Ende()
    Exit
    EndFunc ;==>_Ende

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

    Func OnAutoitExit()
    ; send notification that we no longer will be in clipboard hook queue
    DllCall("user32.dll", "int", "ChangeClipboardChain", "hwnd", $hGui, "hwnd", $origHWND)
    Exit
    EndFunc ;==>OnAutoitExit

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

    Func OnClipBoardChange($hWnd, $Msg, $wParam, $lParam)
    ; send notification about clipboard change to next clipviewer
    DllCall("user32.dll", "int", "SendMessage", "hWnd", $origHWND, "int", $WM_DRAWCLIPBOARD, "int", $wParam, "int", $lParam)
    _CheckCode()
    TraySetState(8)
    EndFunc ;==>OnClipBoardChange

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

    Func OnClipBoardViewerChange($hWnd, $Msg, $wParam, $lParam)
    ; if our remembered previous clipviewer is removed then we must remember new next clipviewer
    ; else send notification about clipviewer change to next clipviewer
    If $wParam = $origHWND Then
    $origHWND = $lParam
    Else
    DllCall("user32.dll", "int", "SendMessage", "hWnd", $origHWND, "int", $WM_CHANGECBCHAIN, "hwnd", $wParam, "hwnd", $lParam)
    EndIf
    EndFunc ;==>OnClipBoardViewerChange

    [/autoit]

    Gruß Ashpool

    Zitat von mir

    Bin immer wieder erstaunt, wie begrenzt ein Horizont sein kann.