Hast du es denn schon mal mit BinaryToString(InetRead("website", 1)) probiert?
Das Extrahieren kannst du anschließend mit StringRegExp lösen.
Beiträge von alpines
-
-
Ich stecke da fest. Habt ihr ein Vorschlag wie man das richtig angeht? Ich möchte den richtigen Lösungsweg verstehen.
Wo steckst du denn fest?
Übrigens kannst du die Zuweisung von den Elementen in $sw_list in einer For-Schleife vornehmen und so rund 100 Zeilen sparen.
-
Schön, dass es dir auffällt. Chip hat nur nachgezogen, dutzende andere Seiten hatten das Konzept schon vorher

Mit den älteren Versionen konntest du sogar die Scripte decompilen und Schritt für Schritt verfolgen was das Script anstellt. -
Entweder du verschweigst uns was oder du hast nicht den kompletten Code gepostet (was auch aufs erste zutrifft).
$IE_Fenster ist nicht deklariert. Dein Script ist also nicht mal lauffähig.
Wenn du den Firefox-Browser ansteuern willst, raten ich dir das Plugin Mozrepl runterzuladen und die FF.au3 zu verwenden.
Dann hast du praktisch die selben Möglichkeiten wie mit der IE.au3. Du kannst im Hintergrund dann den Browser zum laden bewegen.Allerdings stellt sich mir hier direkt die Frage, warum nimmst du Firefox und nicht den IE? Was willst du überhaupt machen?
Eventuell können wir das ganze viel besser anders lösen wenn du uns verrätst was du wo und wie vorhast. -
Thread kann geclosed werden.
Hier wird nichts geschlossen, es wird nur der grüne Haken für erledigt / gelöst gesetzt. Das kannst du beim nächsten mal auch machen.
Einfach den 1. Beitrag editieren und Threadstatus anpassen. -
Was ist ein UDF?
Eine UDF ist eine User-Defined-Function. Meistens verwendet man den Begriff UDF für eine Sammlung von Konstanten und Funktionen.
Ein Beispiel wäre die IE.au3 UDF. Sie liegt im include Ordner wenn du sie dir mal angucken willst.Sie ist spezialisiert auf ein Thema, bei der IE.au3 wäre es die Ansteuerung des Internet Explorers.
-
Du kannst prüfen ob sich die Koordinaten verändert haben und dann verschieben, das ginge dann so:
AutoIt
Alles anzeigen$hGUI = GUICreate("", 100, 100) GUISetState() Local $aOldPos[2] While GUIGetMsg() <> -3 $aPos = WinGetPos("Dokument1") If $aPos[0] <> $aOldPos[0] or $aPos[1] <> $aOldPos[1] Then $aOldPos = $aPos WinMove($hGUI, "", $aPos[0] - 100, $aPos[1]) EndIf WEndDu könntest auch eine GUI drum legen (mit _WinAPI_SetParent) und diese zum verschieben nutzen,
dann kannst du dort die WM_MOVE Nachricht registrieren und weißt immer Bescheid wenn das Fenster verschoben wurde.Events für fremde Fenster direkt kann man glaube ich nicht registrieren.
-
Ein Thread im Bereich 'Talk' muss ja offensichtlich nicht als 'erledigt' gekennzeichnet werden.
So laufe ich keine Gefahr, @alpines durch das Fehlen des grünen Hakens unglücklich zu machen
Endlich denkt jemand an mich!
Die Sektion die du ausgewählt hast ist schon gut so. Hättest es auch in Off-Topic posten können, da drehen wir hier niemandem einen Strick draus.
-
Eine IE Instanz dafür zu erstellen ist nicht notwendig, arbeite lieber mit InetRead (auch wenn das strenggenommen mit IE arbeitet).
Mit ein bisschen Trickserei kann man daraus einen Einzeiler machen (ohne zu unterscheiden ob der Channel existiert, ich glaube das ist nicht notwendig, und wenn doch,
dann fügst du halt noch eine Zeile hinzu.):AutoIt$sInput = InputBox("YouNow Channel", "Gib einen Channelnamen ein:") MsgBox(64, "YouNow", "Der Channel von """ & $sInput & """ ist " & (_IsOnline($sInput) ? "online" : "offline") & ".") Func _IsOnline($sChannelName) Return Not StringRegExp(BinaryToString(InetRead("https://api.younow.com/php/api/broadcast/info/user=" & $sInput, 1)), _ "(Broadcaster is unable to receive gifts at this time|Invalid user Id|Invalid channel ID)") EndFunc -
Dann versuchs doch mal mit BinaryToString(InetRead()) (vergiss nicht bei InetRead den Parameter Force_Reload zu nutzen).
Die Informationen kannst du dir mit StringRegExp dann anschließend extrahieren.Schöner wäre es natürlich, wenn es dazu eine UDF gäbe aber ich glaube die gibts nicht.
-
YouNow bietet eine API an. Hier mal ein Beispiel wie jemand per Python das ganze ansteuert: https://github.com/jdleo/YouNow-P…aster/YouNow.py
Wenn du jetzt fleißig googlest oder mal den Support von YouNow anschreibst, wirst du sicherlich eine passende Dokumentation dazu finden.Falls du kein Zugang dazu bekommen solltest, kannst du einfach die Websiten "herunterladen" und nach Keywords scannen die dir anzeigen, ob der User online ist.
Dazu rufst du einfach seine Seite auf https://younow.com/benutzername und suchst nach den Keywords. Da wird sicherlich was sein. -
Liegt das aber nicht auf der Hand wenn du Forenanhänge lokal abspeicherst? Im Thread können die Dateien ja ruhig Example.au3 heißen, da sie ja nur in dem Thread vorkommen.
Ist die Anregung jetzt nur für lokale Dateien oder möchtest du, dass die Anhänge hier im Forum einer gewissen Konvention folgen sollen?Bei dem Benennungsschema würde ich lieber auf eine Ordnerstruktur setzen, da du bei sonst zu vielen UDFs einen einzigen Ordner hast der mit zip-Dateien überquillt.
-
Leider sind im Quell-Code und im Body nicht die Informationen die ich benötig
Wenn die Informationen nicht im Quellcode sind, wo sollen sie dann sonst sein?
-
Gibt es eine Funktion, mit der ich den Inhalt der Internetseite auslesen kopieren kann, so wie ich den Text des Browsers auslesen kann?
Wie wäre es denn mit den IE Funktionen aus der UDF? Guck dir mal _IEDocReadHTML, _IEBodyReadText an.
die Abfrage ohne Browser würde mich interessieren gibt es dafür ein gutes Beispiel?
Hier mal ein Beispiel wie man sich seine aktuelle IP von myternalip.com/raw holt. Benötigt die WinHttp.au3.
AutoIt
Alles anzeigen#include <WinHttp.au3> $hSession = _WinHttpOpen() $hConnect = _WinHttpConnect($hSession, "myexternalip.com") $sHTML = _WinHttpSimpleRequest($hConnect, "GET", "raw") _WinHttpCloseHandle($hConnect) _WinHttpCloseHandle($hSession) MsgBox(64, "HTML", $sHTML)Mit TCP (nicht für Anfänger zu empfehlen) musst du das Paket selber bauen.
AutoIt
Alles anzeigenTCPStartup() $hServer = TCPConnect(TCPNameToIP("myexternalip.com"), 80) If $hServer = -1 Then Exit TCPSend($hServer, "GET /raw HTTP/1.1" & @CRLF & "Host: myexternalip.com" & @CRLF & @CRLF) $sRecv = "" Do $sRecv &= TCPRecv($hServer, 2048) Until $sRecv <> "" TCPCloseSocket($hServer) TCPShutdown() MsgBox(64, "Packet", $sRecv) -
Du zwingst den IE dazu zuverlässig zu starten.
Du könntest auch die Abfrage mit WinHttp anstellen aber das ist ein wenig komplizierter, benötigt aber keinen Browser.
Wenn ihr eine ganz normale HTTP-Seite habt, kannst du sogar einfach nur das Packet per TCP schicken. -
Kann man den Suchausdruck auch so anpassen, das er erst am dem 3. Punkt anfängt zu suchen und alles bis zum nächsten Punkt ausgibt?
Natürlich geht das, du splittest das ganze und lässt den Index [3] ausgeben. Solltest vorher natürlich prüfen, ob er existiert.
-
Aber @alpines Lösungsvorschlag war wirklich eine super Idee
Deshalb habe ich es ja auch vorgeschlagen

Ich war Mal so frei und habe einen Zehner in die Kaffeekasse geworfen... Ich hoffe das ist ok
Das ist sogar schwer in Ordnung!
-
Techniker und IT.-Abteilung geben
der Datenverbindung die SchuldLass doch den Tag über mal einen Ping laufen und schau ob es tatsächlich an der Leitung liegt. Bricht die ganze Internetverbindung zusammen oder nur die Verbindung des Programmes?
-
3x ein anderer Wert
Deshalb das ExitLoop. Wenn es gefunden wurde springt er direkt raus.
-