1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. 32vroni

Beiträge von 32vroni

  • In Browser ein paar Buttons einfügen, die dann Funktionen ausführen, die es im Browser nicht gibt

    • 32vroni
    • 21. Januar 2010 um 11:28

    Ich benutze ein paar Webseiten, bei denen ich regelmäßig die gleichen Daten in Eingabefelder eingeben und dann noch etwas in einem Auswahlfeld mit der Maus wählen muß.

    Ich hätte da gerne stattdessen im Browser integriert ein paar Buttons mit diesen vorgefertigten Aktionen, die ich dann nur mit der Maus anklicke oder mit einem Shortcut starte. IE oder FF.

    Geht das grundsätzlich oder muß ich bei PhraseExpress oder ähnlichen Tools bleiben?

  • Wie: Text suchen zwischen zwei Textstellen

    • 32vroni
    • 20. Januar 2010 um 18:26

    So, dank Eurer Hilfe ist das nun die Lösung:

    $countryeins = _StringBetween($ErgebnisSAT, 'id="country">', '</select>')
    $countryzwei = _StringBetween($countryeins[0], '<option selected="selected" ', '/option>')
    $countrydrei = _StringBetween($countryzwei[0], '">', '<')

    $languageeins = _StringBetween($ErgebnisSAT, 'id="preferredlanguage">', '</select>')
    $languagezwei = _StringBetween($languageeins[0], '<option selected="selected" ', '/option>')
    $languagedrei = _StringBetween($languagezwei[0], '">', '<')

    $stateeins = _StringBetween($ErgebnisSAT, 'id="state">', '</select>')
    $statezwei = _StringBetween($stateeins[0], '<option selected="selected" ', '/option>')
    $statedrei = _StringBetween($statezwei[0], '">', '<')


    $such1= 'id="firstname"'
    $begr1 = '" type='
    Local $aFirstName = _StringBetween($ErgebnisSAT, $such1, $begr1)
    $FN = _ArrayToString($aFirstName)
    $FirstName= StringTrimLeft($FN, 34)

    Bestens - vielen Dank nochmal! ^^ ^^

  • Wie: Text suchen zwischen zwei Textstellen

    • 32vroni
    • 20. Januar 2010 um 15:49

    Und jetzt noch eine letzte Frage:

    So sieht der Source Code aus:

    id="firstname" type="text" maxlength="100" size="35" value="SUCHBEGRIFF" />

    Und darin will ich jetzt den SUCHBEGRIFF in ein Variable bringen.
    Mit meinem Versuch unten bekomme ich jedoch nur die Länge 0 und natürlich auch keinen SUCHBEGRIFF zurück. Da vermute ich, daß es wohl mit den Anführungszeichen nicht stimmt?

    Local $aFirstName = _StringBetween($ErgebnisSAT, 'id="firstname" type="text" maxlength="100" size="35" value="', '/>')
    $FirstName = _ArrayToString($aFirstName)
    MsgBox (1, "", StringLen($FirstName))

  • Wie: Text suchen zwischen zwei Textstellen

    • 32vroni
    • 20. Januar 2010 um 15:44

    So einfach kann es sein - erstmal eingrenzen und dann nochmal. Das schaut gut aus; da bastel ich jetzt mal weiter mit den anderen Teilen.

    Vielen Dank :) :) :) :!:

  • Wie: Text suchen zwischen zwei Textstellen

    • 32vroni
    • 20. Januar 2010 um 15:19

    Zum besseren Verständnis:

    Der Benutzer kann aus rund zweihundert Ländern auswählen. Wenn er Germany gewählt hat, sieht der Source code so aus:

    <td><select name="country" onchange="__doPostBack('country','')" language="javascript" id="country">
    <option value="-1">Please Select</option>
    <option value="1">Afghanistan</option>
    <option value="2">Albania</option>
    <option value="3">Algeria</option>
    <option value="4">American Samoa</option>

    ;..... da sind noch mehrere Länder aufgeführt, die ich mir aber hier spare....

    <option value="82">Georgia</option>
    <option selected="selected" value="83">Germany</option>
    <option value="84">Ghana</option>


    Ist der Benutzer aber z.B. in Algerien daheim, sieht der Source Code so aus:

    <td><select name="country" onchange="__doPostBack('country','')" language="javascript" id="country">
    <option value="-1">Please Select</option>
    <option value="1">Afghanistan</option>
    <option value="2">Albania</option>
    <option selected="selected" value="3">Algeria</option>
    <option value="4">American Samoa</option>

    Ich muß jetzt das jeweils gewählte Land herausfinden, also Germany oder Algerien, und dieses Wort in die Variable $Country packen. Eigentlich würde es genügen, wenn ich nach dem Begriff suchen würde, der zwischen
    <option selected="selected" value="83">

    und
    </option>
    steht. Dummerweise gibt es drei solcher Auswahllisten in dem gesamten Source Code, der zurückkommt, wenn die email eingegeben wurde, und die unterscheiden sich durch die jeweilige "id=" in der Zeile

    <td><select name="country" onchange="__doPostBack('country','')" language="javascript" id="country">

    In diesem Fall geht es also um die Länderauswahl; dann gib es noch Bundesländer und Sprachauswahl. Also sind die zugehörigen

    <option value="XXX">XXXXXXXXXX</option>

    alle unterschiedlich.

  • Wie: Text suchen zwischen zwei Textstellen

    • 32vroni
    • 20. Januar 2010 um 14:27

    Nein, es ist so, daß ich auf eine Datenbank zugreife, da eine email eingebe und dann als Ergebnis die html Seite zurückbekomme. In dieser html Seite ist es so, daß je nach dem, in welchem Land der Benutzer wohnt, der zurückgegebene html Code anders ist. Grund ist, daß ich beim Anzeigen des Ergebnisses noch die Möglichkeit haben soll, das Land zu ändern, denn manche Benutzer geben gar kein Land ein. Den Zugriff auf die Datenbank habe ich nur mittels dieser Webseite, sodaß ich mir ein Skript mache, mit dem ich die Abfrage einfacher gestalte und die zurückbekommenen Daten wiederum in eine andere Datenbank eingeben kann, sodaß diese beiden Datenbanken langsam vereinheitlicht werden.

    Mühselig, aber wenigstens geht es.
    Eure Tips probiere ich noch, da bin ich noch nicht dazu gekommen. Danke aber schonmal.

  • Wie: Text suchen zwischen zwei Textstellen

    • 32vroni
    • 20. Januar 2010 um 12:51

    Hallo zusammen,

    vermutlich ist das nicht sonderlich schwierig, aber da muß ich jetzt passen:

    Mir geht es darum, das gewählte Land aus einer Liste herauszufinden und in eine Variable zu lesen. Mit anderen Werten konnte ich mir so helfen:

    Local $aCity = _StringBetween($ErgebnisSAT, 'id="city" type="text" maxlength="100" size="50" value="', '" />')
    $City = _ArrayToString($aCity)

    Bei den Ländern schaut der html code so aus:

    <td><select name="country" onchange="__doPostBack('country','')" language="javascript" id="country">
    <option value="-1">Please Select</option>
    <option value="1">Afghanistan</option>

    <option value="2">Albania</option>
    <option value="3">Algeria</option>
    <option value="4">American Samoa</option>
    ..... da sind noch mehrere Länder aufgeführt....
    <option value="82">Georgia</option>
    <option selected="selected" value="83">Germany</option>
    <option value="84">Ghana</option>

    Jetzt möchte ich also Germany in die Variable bringen. Oder auch jedes andere Land, das der Benutzer mit <option selected="selected" ausgewählt hat.

    Wie mache ich das?

    Danke!

  • Wie email mit Maus hovern und mittels Tastendruck in Variable speichern?

    • 32vroni
    • 21. Oktober 2009 um 23:10

    An die Seiten kommt man nicht; die sind im VPN der Firma. Da nutzt ein Link nix. Das ist aber eher sekundär; stell es Dir vor, wie eine übliche html Seite, auf der z.B. jemand im Impressum sein mailto:vroni.s@gmx.de stehen hat. Das ist im Quellcode zu lesen. In meinem Fall sind es noch 50 andere emails, die ich nicht brauchen kann und deshalb hat es auch keinen Sinn, einfach alle mailto: in ein Array zu lesen. Also will ich einfach die Maus darüber fahren und z.B. F7 oder sonstwas drücken. Dann ein anderes Tab wählen, und hier dann in ein Formularfeld den Wert wieder einzufügen.

    Sonderlich weit sind meine Gedanken noch nicht gegangen; mach ja keinen Sinn, den Rest zu machen, wenn der Anfang nicht steht.

    #Include <FF.au3>

    ; trying to connect to a running FireFox with MozRepl on
    If _FFConnect(Default, Default, 3000) Then
    _FFTabSetSelected("DB1","label")
    _FFLinkClick("Cust mail", "text")
    _FFLoadWait()

    Maus hinbewegen, Wert lesen

    _FFTabSetSelected("DB2","label")

    Und hier komme ich dann schon weiter.

    EndIf

  • Wie email mit Maus hovern und mittels Tastendruck in Variable speichern?

    • 32vroni
    • 21. Oktober 2009 um 22:39

    Ich habe eine Webseite mit Ergebnissen aus Datenbankabfragen; u.a. ist da eine Spalte, in der die emails der Benutzer aufgeführt werden. Diese emails will ich einzeln in eine andere Webseite eintragen, um eine andere Datenbank abzufragen.

    Mein Gedanke ist, in der Ergebnisliste jeweils mit der Maus über eine email zu fahren, eine Taste zu drücken, und damit gleichzeitig die email in die andere Datenbank einzugeben. Das Problem ist, daß ich nicht weiß, wie ich die email aus der Ergebnisliste in eine Variable bekomme. Danach käme ich wohl schon weiter.

    Fahre ich in der Ergebnisliste über die email, ist das übliche "mailto:xy@zz.com" zu sehen.

    Kann mir da jemand einen Wink geben? Danke!

  • FF - Page Analyzer (V0.999.6b) - erstellt Befehle für HTML-Forms, Links und automatisch Login-Scripte

    • 32vroni
    • 21. Oktober 2009 um 18:36

    Mit PageExplorer habe ich in einem Anfall von heftiger Verwirrtheit eigentlich Deinen PageAnalyzer gemeint. Asche auf mein Haupt...

    Anregung: Kannst Du das Fenster skalierbar machen?

    Danke!

  • FF - Page Analyzer (V0.999.6b) - erstellt Befehle für HTML-Forms, Links und automatisch Login-Scripte

    • 32vroni
    • 21. Oktober 2009 um 06:50

    Das bekomme ich mit Firefox 3.5.3 bei http://www.gmx.de und anderen Seiten.
    In Zeile 349 _FFFrameGetSelected() und in der aktuellen FF.au3 ist das nicht drin.
    Bin leider nicht erfahren genug, um das zu beheben.
    Ich hab gerade von
    http://www.thorsten-willert.de/php/dl.php?url…ge_Analyzer.au3 V0.999.6 und
    http://www.thorsten-willert.de/php/dl.php?url=FFau3/FF.au3/FF.au3 0.5.3.9b die aktuellen Versionen geladen; die Meldung bleibt. Mache ich da was verkehrt? Gibts sowas wie den PageExplorer auch für Internet Explorer?

    Danke!

    >"C:\Programme\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Programme\AutoIt3\Examples\FF_PageAnalyzer.au3"
    _FFConnect: OS: WIN_XP WIN32_NT 2600 Service Pack 3
    _FFConnect: AutoIt: 3.3.0.0
    _FFConnect: FF.au3: 0.5.3.9b
    _FFConnect: IP: 127.0.0.1
    _FFConnect: Port: 4242
    _FFConnect: Delay: 2ms
    _FFConnect: Socket: 1752
    __FFSend: try{FFau3.Frame='top';}catch(e){'_FFCmd_Err';};
    __FFRecv: top
    __FFSend: try{window.content.top.document.browserDOMWindow}catch(e){'_FFCmd_Err';};
    __FFRecv:
    __FFSend: try{navigator.userAgent}catch(e){'_FFCmd_Err';};
    __FFRecv: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)
    _FFConnect: Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)
    __FFSendJavaScripts: Sending functions to FireFox ......... done
    _FFLoadWait: . loaded in 26ms
    __FFSend: try{window.content.top.document.location.href}catch(e){'_FFCmd_Err';};
    __FFRecv: http://www.gmx.net/
    _FFLoadWait: . loaded in 25ms
    _FFLoadWait: . loaded in 23ms
    __FFSend: try{window.content.top.document.location.href}catch(e){'_FFCmd_Err';};
    __FFRecv: http://www.gmx.net/
    _FFLoadWait: . loaded in 23ms
    _FFLoadWait: . loaded in 24ms
    __FFSend: try{window.content.top.document.location.href}catch(e){'_FFCmd_Err';};
    __FFRecv: http://www.gmx.net/
    _FFLoadWait: . loaded in 37ms
    __FFSend: try{FFau3 != null?1:0}catch(e){'_FFCmd_Err';};
    __FFRecv: 1
    __FFSend: try{window.content.top.top.document.location.href}catch(e){'_FFCmd_Err';};
    __FFRecv: http://www.gmx.net/
    __FFSend: try{content.frames.length}catch(e){'_FFCmd_Err';};
    __FFRecv: 1
    _FFLoadWait: . loaded in 24ms
    C:\Programme\AutoIt3\Examples\FF_PageAnalyzer.au3 (349) : ==> Unknown function name.:
    Local $tmp = _FFFrameGetSelected()
    Local $tmp = ^ ERROR
    >Exit code: 1 Time: 29.600

  • Wie kann ich auf ein Excel Sheet zugreifen, ohne jedesmal neu Excel starten zu müssen?

    • 32vroni
    • 19. Januar 2009 um 22:35

    Tag zusammen,

    ich habe eine Tabelle mit einem Arbeitsblatt (Sheet). Damit ich Inhalte von Zellen auslesen kann, muß ich bisher immer sowas machen:

    Local $zelle[1000][500]
    Local $oExcel = _ExcelBookOpen("I:\Daten\Excel\Adressen.xlsm")
    For $reihe = 2 to 999
    For $spalte = 1 To 10 ;Loop
    $zelle[$reihe][$spalte] = _ExcelReadCell($oExcel, $reihe, $spalte)
    ;MsgBox(1, "", "Reihe" & $reihe &" " & "Spalte" & $spalte & " " & $zelle[$reihe][$spalte])
    Next
    Next

    Wenn ich einen Fehler im Skript habe, muß ich jedesmal die Tabelle schließen und neu laden, was schon Zeit kostet. Eleganter wäre, einfach mit WinActivate Excel wieder zu aktivieren. Der Dokumentation habe ich entnommen, daß _ExcelReadCell wohl nur mit einem vorangegangenen _ExcelBookOpen oder _ExcelBookNew funktioniert.

    Kann ich meine Tabelle offen lassen und mit _ExcelSheetActivate darauf zugreifen?
    Ist es möglich, die zeitraubende Prozedur, die Variablen einzulesen, nur einmal mit einem Skript zu machen und selbst, wenn ich dann ein anderes Skript starte, die Variablen zu nutzen?

    Hintergrund ist, daß ich in der Excel Tabelle eine unvollständige Adressliste habe, aus der ich die emails in die Variablen lese, dann ein anderes Programm aktiviere, hier jeweils eine email in ein Onlineformular eingebe, absende und dann die restlichen Daten zurückerhalte. Die lese ich in andere Variablen ein, aktiviere wieder Excel und fülle dann die entsprechenden Zellen.

    Es kommen jedoch durch falsch ausgefüllte Felder oft Abbrüche vor, sodaß ich das Skript nacharbeiten muß - und wieder neu starte.

    Danke

  • Kann man in einem Control etwas auswählen, von dem nur die Position bekannt ist?

    • 32vroni
    • 8. August 2008 um 17:52

    Hallo,

    mit dem Mut der Verzweiflung habe ich diese Lösung gefunden:

    MouseClick ( "left", 350, 220, 1, 1 )
    Send ("{home}a{enter}")

    MouseClick ( "left", 350, 260, 1, 1 )
    Send ("{ASC 091} {down 12}{right}h{Enter}")

    Es hat leider den Nachteil, daß ich nicht die Bildschirmauflösung ändern kann und das Programm Vollbilddarstellung benötigt. Vielleicht weiß jemand was besseres?

    Danke!

  • Kann man in einem Control etwas auswählen, von dem nur die Position bekannt ist?

    • 32vroni
    • 8. August 2008 um 16:21

    Hallo,

    ich habe ein Programm, bei dem sich mehrere Tabs öffnen (ähnlich Firefox) und in jedem dieser Tabs sind mehrere Comboboxen mit diversen Einträgen, von denen es immer einen bestimmten zu wählen gilt. Grundsätzlich gelingt mir das mit einem der Tabs; das schaut dann so aus:

    ControlCommand ("ech", "", "[CLASS:WindowsForms10.COMBOBOX.app.0.158d014; INSTANCE:2]", "ShowDropDown", "")
    ControlSend ("ech", "", "[CLASS:WindowsForms10.COMBOBOX.app.0.158d014; INSTANCE:2]", "a{Enter}")

    ControlCommand ("ech", "", "[CLASS:WindowsForms10.Window.8.app.0.158d014; INSTANCE:42]", "ShowDropDown", "")
    ControlSend ("ech", "", "[CLASS:WindowsForms10.Window.8.app.0.158d014; INSTANCE:42]", "e{right}h{Enter}")

    Hier wird also nur der erste Buchstabe "a" gewählt und mit Enter das Feld geschlossen. Beim nächsten Feld ist zuerst "e" zu drücken und dann darunter "h"; auch dann wird wieder mit Enter das Feld verlassen.

    Soweit funktioniert das. Beim nächsten Tab sind dann auch genau die gleichen Einträge in den gleichen Feldern zu wählen. Dummerweise sind dann aber die Klasse, IDs und Instanzen unterschiedlich, sodaß die Tastendrücke unerwünschterweise in ganz anderen Feldern stattfinden oder garnicht.

    Einzig gleich bleibt die Position und Größe der Felder. Kann ich daher mittels der Postion x,y und Größe w,h wie in der Doku erwähnt "X \ Y \ W \ H - The position and size of a control." das jeweilige Feld ausfüllen? Oder bin ich total auf dem Holzweg?

    Danke!

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™