Beiträge von 32vroni

    Prima, das geht schon in die richtige Richtung:-)

    Jetzt muss ich noch ein paar Daten in Felder einfüllen lassen, damit die Anmeldung automatisiert wird.

    Dazu muss ich sehen, was gerade abläuft. Wie schalte ich die Darstellung des Browsers während des Testens ein?


    Ich vermute, das wird hier gemacht?

    $oIViewObject2.Draw(1, -1, 0, 0, $hDC, $hMemDC, $sRECT, 0, 0, 0)

    Die Daten aus der Webseite zu lesen schaffe ich schon; das Thema ist ein anderes:

    Um einen Screenshot machen zu können, muss der Browser im Vordergrund stehen - ob als kleines Fenster oder bildschirmfüllend. Und genau das soll ja nicht sein. Auf dem gesamten Bildschirm laufen immer und ohne Ausnahme durchgehend die Informationsbilder; in den oberen zwei Dritteln meist Unternehmensfilme, die sich mit irgendwelchen Verhaltensanweisungen oder Kennzahlen abwechseln und im unteren Drittel sieht man immer die Namen der Mitarbeiter und ob diese gerade anwesend und in welchem Gebäude sie sind. Da kann ich nicht alle Minuten mal kurz den Browser aufblitzen lassen und einen Screenshot machen.


    Warum ein Screenshot? Sehr wahrscheinlich kann jemand die Tabellen mit dem Anwesenheitsstatus aus den Webseiten extrahieren und dann eben nur daraus eine Webseite oder ein Bild machen. Mir selber gelingt das leider nicht. Es reicht nicht aus, einfach nur die Bereiche von <table> bis </table> zu kopieren; im <head> Bereich der Seite sind Verweise auf Javascript Kendo, ohne die die Darstellung nur Plain Text wird. Dann werden alle Mitarbeiter als eine lange Liste untereinander angezeigt; das nutzt mir nix.


    Letzten Endes ist ein Screenshot von 72 kB für ein Bild nicht sonderlich groß; alleine die html Seite ohne die passende Formatierung hat schon 50 kB. Insofern spare ich da wahrscheinlich nicht sonderlich viel.

    Das Programm Xibo, welches die Darstellung der Inhalte auf dem Bildschirm übernimmt, kann zwar Webseiten darstellen, aber die müsste ich wie vorgenannt passend aufbereiten. Bereiche von existierenden Webseiten ausschneiden ist damit nicht wirklich machbar. Zudem muss man sich bei der Webseite einloggen, um überhaupt den Anwesenheitsstatus abrufen zu können. Damit bleiben mir nur Screenshots.


    Ich meine, es gibt grundsätzlich die Möglichkeit mit bestimmten Browsern ohne Bildschirm zu arbeiten, was man üblicherweise für Tests oder Webscraping macht. Was ich da bisher gesehen habe, war etwas fernab meines Verständnisses.

    Daher meine Frage, ob das mit dem ursprünglich erwähnten UDF Web driver funktionieren könnte, denn mit AutoIt bin ich zwar nicht gerade eine helle Kerze, aber es fällt mir etwas einfacher.

    Rechner 1 zeigt andauernd etwas bildschirmfüllend auf dem Bildschirm an. Das soll nicht unterbrochen werden und es soll auch nix anderes zu sehen sein.

    Im Prinzip wäre es so, als wollte man auf einem Werbebildschirm wie sie überall zu sehen sind, während die Werbung gezeigt wird, einen Screenshot von einem Browserfenster gemacht werden - und dieses Browserfenster soll natürlich NICHT zu sehen sein. Es soll immer nur die Werbung angezeigt werden.


    Insofern glaube ich, dass _ScreenCapture_CaptureWnd nicht geeignet ist; wenn ich es recht verstehe, wird nur vom sichtbaren Bereich ein Screenshot gemacht - und dort ist ja nur Werbung zu sehen.

    Hallo zusammen,


    ich würde gerne auf einem Rechner einen Browser nutzen, um im Minutentakt den Inhalt einer Webseite abzurufen und als Bild zu speichern. Auf diesem Rechner läuft XIBO, eine Software zur Darstellung diverser Bilder, Texte und Videos. Es ist ein Informationssystem, das wir inhouse nutzen, um internas und Anwesenheitsinformationen darzustellen.


    Da ich keinen Weg gefunden habe, die aktuelle Anwesenheitsinformation ununterbrochen auf diesem Bildschirm darzustellen, läuft derzeit ein zweiter Rechner, der die Anwesenheitsinformation mit dem Browser anzeigt, einen Screenshot erzeugt, das Bild beschneidet und auf ein Netzlaufwerk schiebt. Der erste Rechner holt jede Minute das Bild und stellt es dar. Das ist natürlich fehleranfällig, weil die Rechner hundert km voneinander entfernt sind und remote bedient werden müssen. WLAN ist bei dem einen unzuverlässig, Ethernet gibt es nicht und die Datenmenge, die über die SIM-Karte übertragen wird, ist mehr, als gebucht wurde. Nach ein paar Tagen fällt die Geschwindigkeit auf Modemzeiten zurück und bis zum Rest des Monats ist der Rechner nicht mehr ansprechbar. Insofern wäre es mit sehr recht, die Bilder des Anwesenheitsstatus direkt auf diesem ersten Rechner zu erzeugen.


    Wäre es denkbar, mit dem UDF Web driver eine Steuerung des Browsers soweit hinzubekommen, dass ein Screenshot gemacht werden kann, ohne dessen Screen im Vordergrund zu haben? Es soll ja immer nur die Oberfläche von XIBO zu sehen sein.

    Guten Tag,


    im Büro steht ein Neo Z83-4 W10 Rechner, bei dem die Verbindung zum Gäste-WLAN unregelmäßig abbricht. Dann muss man wieder manuell verbinden und dabei ein Passwort eingeben.

    Ich würde gerne automatisch prüfen, ob die Verbindung zum WLAN noch da ist und wenn nicht, soll diese wieder hergestellt werden. Ansonsten müsste ich rund 100 km fahren, nur um das manuell zu machen.


    Wie kann ich die Verbindung zum WLAN prüfen? Das Skript zum Verbinden schaffe ich wahrscheinlich alleine.


    Danke!

    FileOpen - Beispiele:

    Falsch: Es ist während dem schreiben der temporären Datei ein Fehler aufgetreten.

    Richtig: Es ist während des Schreibens der temporären Datei ein Fehler aufgetreten.


    Falsch: Es ist während dem lesen der Datei ein Fehler aufgetreten.

    Richtig: Es ist während des Lesens der Datei ein Fehler aufgetreten.


    Falsch: Es ist während des lesens der temporären Datei ein Fehler aufgetreten.

    Richtig: Es ist während des Lesens der temporären Datei ein Fehler aufgetreten.


    Falsch: ; Die Position wird auf die voerherige Position gesetzt.

    Richtig: ; Die Position wird auf die vorherige Position gesetzt.


    Falsch: ; Schließt das Handle welches von FileOpen zurückgegeben wurde.

    Richtig: ; Schließt das Handle, welches von FileOpen zurückgegeben wurde.

    StringTrimLeft - Parameter count:

    Falsch: Die Anzahl der Zeichen die abgeschnitten werden sollen.

    Richtig: Die Anzahl der Zeichen, die abgeschnitten werden sollen.


    StringRight - Parameter count:

    Falsch: Die Anzahl der Zeichen die zurückgegeben werden soll.

    Richtig: Die Anzahl der Zeichen, die zurückgegeben werden soll.


    StringReplace - Parameter replacestring:

    Falsch: Der String der den gesuchten Teilstring ersetzt.

    Richtig: Der String, der den gesuchten Teilstring ersetzt.


    StringReplace - Bemerkungen:

    Falsch: Standardmäßig oder wenn "occurrence" positiv ist wird das Suchen/Ersetzen...

    Richtig: Standardmäßig, oder wenn "occurrence" positiv ist, wird das Suchen/Ersetzen...
    Falsch: Gibt es jedoch in "string" nicht genügend Zeichen um den kompletten "replacestring" einzufügen...

    Richtig: Gibt es jedoch in "string" nicht genügend Zeichen, um den kompletten "replacestring" einzufügen...


    StringMid: Parameter count

    Falsch: Die Anzahl der Zeichen die extrahiert werden sollen.

    Richtig: Die Anzahl der Zeichen, die extrahiert werden sollen.


    StringIsSpace

    Falsch: Prüft ob der String nur Leerstellen enthält.

    Richtig: Prüft, ob der String nur Leerstellen enthält.


    _ArrayToString - Erfolg:
    Falsch: ein, durch Trennzeichen getrennten String, mit allen einzubeziehenden Werten

    Richtig: ein durch Trennzeichen getrennter String mit allen einzubeziehenden Werten


    IsDllStruct

    Falsch: Prüft ob eine Variable vom Typ DllStruct ist.

    Richtig: Prüft, ob eine Variable vom Typ DllStruct ist.


    IsKeyword

    Falsch: Kontrolliert ob die Variable ein keyword ist (z. B. Default).

    Richtig: Kontrolliert, ob die Variable ein keyword ist (z. B. Default).


    IsNumber

    Falsch: Überprüft ob der Variablentyp numerisch ist.

    Richtig: Überprüft, ob der Variablentyp numerisch ist.


    IsObj

    Falsch: Überprüft ob eine Variable oder ein Ausdruck vom Typ Objekt ist.

    Richtig: Überprüft, ob eine Variable oder ein Ausdruck vom Typ Objekt ist.


    Sleep

    Falsch: Pausiert die Skript Ausführung.

    Richtig: Pausiert die Ausführung des Skriptes.

    Hallo zusammen,


    ich sammle von einer Webseite Daten, die sich dauernd ändern und habe es schon geschafft, diese in drei einzelne Arrays einzulesen: Farbe, Name und Strasse.


    Es geht um gleichbleibende Namen und Strassen, aber die Farben ändern sich in unregelmäßigen Intervallen. Ich muss ständig vier Tabellen mit den sich aktuell darin befindlichen Namen und Strassen darstellen. Ich kann diese drei Arrays zu einem String zusammensetzen. Hier ist ein Beispiel:



    Wie kann ich vier Strings erzeugen, die jeweils nur die Einträge der jeweiligen Farben gruppiert enthalten? Das soll dann so aussehen:


    Das nächste Ziel ist dann, das ganze mit <li> zu versehen; das bekomme ich dann aber wahrscheinlich selber hin:




    Danke für Ideen!

    Liebe Gemeinde,


    ich hadere immer wieder mit der Thematik, dass ich in allen möglichen Seiten einen Bereich löschen will, völlig egal, was darin steht und wie lange das ist.

    Ich habe z.B. unverwechselbare Muster am Anfang und Ende des zu löschenden Bereichs, wie z.B. äääSTART und ENDEööö.

    Mit StringRegExp finde ich zwar die Begrenzungen, aber ich finde keine Möglichkeit, ALLES, was dazwischen steht, zu löschen. Da sollte dann nur mehr alles vom Beginn bis einschließlich äääSTART und alles von ENDEööö bis zum Ende des Dokuments übrig bleiben.


    Wie sollte der entsprechende Ausdruck lauten?


    Danke für Ideen!

    Was ich gerade noch gefunden habe: Mit einem Redirect Checker wie z.B. Urlitor kann ich sehen, dass bei einem existierenden Objekt nur einmal umgeleitet wird und bei einem nicht existierenden Objekt zweimal. Diese Info dauerte nur zwei Sekunden. Wenn ich sowas irgendwie mit Autoit machen könnte, wäre das schon gut.

    Wie immer steht man erstmal unter Verdacht, der Bösewicht zu sein, der nur illegale Dinge im Kopf hat.

    Welche Software ich nutze ist relativ klar: Nix anderes als AutoIt und den Internet Explorer in Ermangelung des Wissens, wie ich das mit Firefox machen würde, da MozRepl nicht mehr unterstützt wird.

    Die Firma für welche ich arbeite stellt Gerätschaften her, die eine gewisse Kundengruppe least. Für diese Gerätschaften braucht es jemand, der den Kunden beim Einrichten und während der Vertragslaufzeit hilft, die zugehörige Software zu nutzen.

    Einer dieser Anwedungstechniker bin ich und ich stelle Touren zusammen, bei denen ich die Kunden besuche. Es gibt ziemlich viele Adressen, bei denen die Produkte eingesetzt werden und leider sind die Herrschaften, die die Daten eingeben, nicht die gleichen, die dann auch die Daten praktisch anwenden müssen. Ich kann mit dem Webinterface jeden einzelnen Kunden nach Namen oder Kundennummer suchen oder auch nach der Gerätenummer, leider nicht nach weiteren Kriterien. Habe ich einen ausgewählt, kann ich alle Daten, wie z.B. Adresse, Ansprechparter, Gerätetyp und noch ein paar Dinge auf der Seite sehen. Das hilft aber nix, wenn ich mir eine Tour zusammenstellen will, bei der ich möglichst effizient von einem zum nächsten fahren will.


    Also nutze ich meine geistige Restkraft und lasse mir automatisch alle relevanten Felder von den Kundennummern 1-12000 auslesen und speichere diese in eine Textdatei mit ; getrennt und kann dann schön mit Excel nach PLZ Bereichen oder Städten filtern. Erfreulicherweise ist der letzte Teil der URL die Objektnummer. Nur kann es vorkommen, dass es z.B. in grauer Vorzeit unter der Nummer 232 noch ein aktives Objekt gab und es dieses mittlerweile aber nicht mehr gibt. In dem Fall wird beim Aufruf dieser URL einfach die übergeordnete Seite aufgerufen. Welche leider mindestens 20 Sekunden zum Laden braucht. Da ich vorher nicht weiß, ob es das Objekt 232 noch gibt, muß ich die Seite 232 aufrufen. Wie könnte ich es denn verhindern, dass die übergeordnete Seite geöffnet wird und ich stattdessen irgendeine Info erhalte?


    Mittleweile habe ich festgestellt, dass mein eigentliches Problem nicht die anfangs genannten Fehlermeldungen sind, sondern die Tatsache, dass ich nicht die Umlenkung auf eine andere Seite verhindern kann, bzw. nicht weiß, wie ich damit umgehen könnte. Ein Prüfen, ob die Seite mit der Objektnummer 232 existiert hilft nix, weil durch das Umlenken ja eine gültige Seite aufgerufen wird.


    Danke für Ideen!

    Hallo zusammen,


    ich habe Zugriff auf alle Einträge unserer internen Datenbank und möchte die 12000 Objekte in ein Textdokument ausgeben, damit ich bequemer nur die relevanten Objekte in meinem Kundengebiet herausfiltern kann. Ich kann zwar jetzt auch alle Kunden suchen, deren Kundennummern mit 990 beginnen oder der Name Parfümerie enthält, aber ich bräuchte stattdessen die Möglichkeit, alle zu suchen, die z.B. im PLZ Gebiet 11xxx ihren Sitz haben und das gibt die Filterfunktion leider nicht her.


    Ich habe ein Skript geschrieben, das alle Objektnummern von 1-12000 durchgehen soll und die entsprechende Webseite öffnet, dort lese ich ein paar Einträge aus dem Formular und schreibe die in eine Textdatei; soweit kein Problem.

    Das Problem kommt dann, wenn eine Seite von einem nicht mehr vorhandenen Objekt geöffnet werden soll. Dann bekomme ich neben einer langen Wartezeit mehrfach die Meldungen

    --> IE.au3 T3.0-2 Error from function _IEFormElementGetObjByName, $_IESTATUS_InvalidDataType

    --> IE.au3 T3.0-2 Error from function _IEFormElementGetValue, $_IESTATUS_InvalidDataType


    In dem Fall wird eine übergeordnete Seite geöffnet und der ganze Quellcode dieser Seite ausgelesen. Das will ich natürlich nicht. Bei der nachfolgenden Seite ist im Titel "verwalten" zu lesen; bei den Seiten mit existierenden Objekten steht im Titel "bearbeiten". Ich dachte ursprünglich, dass ich lediglich prüfen müsste, welches der beiden Worte im Titel steht. Das nützt mir aber nix, weil dazu die Seite ohne Objekt vollständig geladen werden müßte.


    Meine Frage:

    Wie kann ich unmittelbar nach Erhalt einer der beiden Meldungen das Skript dazu bewegen, nicht zu versuchen, die Seite zu öffnen, sondern mit der nächsten Seite weiter zu machen? Das Warten von jeweils etwa 20 Sekunden oder auch länger wenn die übergeordnete Seite geladen wird, muss ich vermeiden.



    Mir gelingt es zwar, den Inhalt einer Zelle auszulesen, aber es ist immer die gleiche.
    Der Wunsch ist, mit der Maus eine Zelle zu aktivieren und dann den Inhalt verschiedener Zellen in der gleichen Zeile zu kopieren. Diese Inhalte übertrage ich dann automatisch in Thunderbird in den Kalender (Lightning).
    Danach wechsle ich mit ALT+TAB wieder zu Excel und suche die nächste gewünschte Zelle, klicke auch dort wieder mit der der Maus.


    Da würde ich erwarten, daß jetzt die Adresse der Zelle eine andere ist. Ist sie aber nicht. Was mache ich falsch?


    Mein Script:


    Danke für die Antworten. Mittlerweile ist klar, daß im Normalfall die untere Taste ein "b" aussendet. Bei manchen Rechnern wird aber die Zahl "1" erkannt. Bei unserem Programm wird eine Funktion durch "b" ausgelöst; wenn "1" oder was anderes ankommt, reagiert das Programm natürlich nicht.


    Ich habe Sharpkey gefunden; damit könnte ich die 1 zu einem b umbiegen. Das Dumme ist, daß das auch die normale Tastatur betrifft und das will ich natürlich nicht. Gibt es eine Möglichkeit, die Abfrage, die oben Phil-IT gemacht hat, so zu erweitern, daß damit nur der Presenter abgefragt wird und nicht auf Tastendrücke der Tastatur reagiert?


    Dann könnte ich was schnitzen, das anschließend den Tastendruck in unserem Programm simuliert.

    Hausinterne. Unser Admin hat uns verlassen, der neue arbeitet sich ein und hat für so was ziemlich lange keine Zeit. Ich habe keine andere Möglichkeit, die Kundeninformationen, die im Lauf der Jahre auf einzelne Seiten ins Intranet gestellt wurden, in eine für uns im Vertrieb wesentlich besser nutzbare Tabelle zu bringen. Jede Firma mit einer eigenen Seite. Super. Da klick ich mir schon lange die Finger wund und es braucht ewig zum Laden einer Seite. Da sind auch noch weitere Informationen wie die Webseite oder Ansprechpartner, die ich auch noch brauche, aber das gelingt mir dann schon.


    Mir ist leider nicht klar, wie ich nach etwas suche, und wenn das einmal gefunden wurde, alles nachfolgende ignoriere.

    Liebe Gemeinde,


    ich habe Webseiten, aus denen ich ein paar Daten holen soll. Irgendwo darin steht z.B. das:


    <tr>
    <th>Hausanschrift</th>
    <td>
    Hausplatz 1<br />
    12345 Stadt
    </td>


    Die Zeilen sind mit Leerzeichen eingerückt.


    Ich würde gerne Hausplatz 1 in einen String bekommen und 12345 Stadt in einen anderen. Den Rest brauche ich nicht.
    Bei http://www.regexr.com/ habe ich schon ein wenig eingekreist, aber ich bleibe hängen, weil nach Hausplatz 1 noch die PLZ und Teile von der Stadt gefunden werden.
    Der Suchstring schaut so aus:
    [^<th>Hausanschrift</th>\r\s*<td>\r\*]\w*\s\d*[^<br\s\/>\r\s*]
    Ich würde mir wünschen, daß alles rechts nach dem <br /> ignoriert wird. Kann mir da jemand bitte helfen?


    Danke!

    Da kommen gleich zwei Dinge zusammen:


    Zum Einen muß die FF.au3 mit Anführungszeichen umschlossen sein:
    #include "FF.au3"


    Zum Zweiten funktioniert es nicht, wenn das Skript in C:\Program Files (x86)\AutoIt3\Examples\ liegt. Auf einer anderen Platte geht es.
    Ist mir schleierhaft, aber es scheint nun zu gehen.