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. Muecke

Beiträge von Muecke

  • _IELinkClickByText Fehlerabfrage

    • Muecke
    • 8. Dezember 2016 um 17:11

    habe eine Lösung gefunden,
    direkt nach dem Befehl mache ich die Zeilen Code dazu.

    AutoIt
    if not @Error then Call ("hotkeyPressed")
    if @Error then MsgBox(0,"Fehler", Mist ein Fehler")
  • _IELinkClickByText Fehlerabfrage

    • Muecke
    • 8. Dezember 2016 um 16:56

    Hallo miteinander,

    wenn ich einen Klick auf einer Webseite mit dem Befehl IELinkClickByTex ausführe möchte ich gerne wissen ob dies auch ausgeführt werden konnte.
    Angenommen den Link gibt es nicht auf der Seite dann möchte ich das abfangen. doch wie mache ich das?

    z.B. der Code hier, den Link gibt es nicht

    AutoIt
    #include <IE.au3>
    
    
    Local $oIE = _IE_Example("basic")
    _IELinkClickByText($oIE, "Link Existiert nicht")


    Wie Prüfe ich das?

    gruß Mücke

  • Func in der Func neu ausführen

    • Muecke
    • 8. Dezember 2016 um 15:15

    OK, dann ist das ja gut, das das Rest mal kein Problem ist, auch wenn ich das Sehr unschön finde.

    Dein Ansatz gefällt mir hingegen schon deutlich Besser.
    Danke.

  • Func in der Func neu ausführen

    • Muecke
    • 8. Dezember 2016 um 14:52

    Hallo miteinander,

    mit einem HotKeySet Lesen ich ein paar Dinge von einer Webseite und Rufe auch eine neue Seite auf, ganz zum Schluss Prüfe ich ob auf der neuen Webseite was bestimmtes Steht wenn ja dann möchte ich das die Func in der ich ja noch bin gleich noch mal ausgeführt wird. wie macht man so was?

    Da ist mein Code:

    AutoIt
    ... 
    #include <IE.au3>
    ...
    HotKeySet("^{SPACE}", "hotkeyPressed")
    
    
    while WinExists($hIE)   
       sleep(1000)
    WEnd
    
    
    Func hotkeyPressed() 
    ...
    Webseite lesen
    ... 
    Neue Webseite laden
    .... 
    $sText = _IEBodyReadText ($oIE)$search = "Wen ich auf der Webseite Stehe.."
    If StringInStr($sText, $search) <> 0 Then MsgBox(0, "Gefunden", "Jetzt muss die Funktion ausgelöst werden")
    EndFunc
    Alles anzeigen

    ich habe mir überlegt die IF so umzubauen:

    AutoIt
    If StringInStr($sText, $search) <> 0 Then Call ("hotkeyPressed")

    das geht dann auch, jedoch habe ich die Befürchtung das das nur eine Temp Lösung ist denn die Func ist ja noch nicht beendet und wired wider neu aufgerufen, und das könnte ich mir vorstellen ist irgend wann ein Problem? oder Irre ich mich dabei?


    Gruß Mücke

  • Formular auf Webseite Automatisch ausfüllen. ... Hilfe

    • Muecke
    • 8. Dezember 2016 um 12:20

    ja du hast recht, man sollte das Formular Automatisch versenden.

    Da jedoch der Shop Betreiber das Automatische Durchsuchen der Seite untersagt, habe ich hier die Klicks noch alle von Hand mit drin.

    Damit wird das nicht Automatisch gemacht sondern immer noch von einem Menschen ;) ich hoffe das zumindest.

    werde mir den befehl _IEFormElementOptionSelect() genauer anschauen. Danke.

  • Formular auf Webseite Automatisch ausfüllen. ... Hilfe

    • Muecke
    • 7. Dezember 2016 um 23:06

    OK, das hab eich nicht getestet, bin davon ausgegangen wie beim Imputierend das ich die Eingabe sehen würde.

    Es ist tatsächlich hinterlegt. dann hatte das doch schon geklappt ich bin nur zu Kurzsichtig gewesen es zu erkennen.

    Danke.

    kann man das Feld auch so verändern das es mit drin steht was ausgewählt wurde?

    Aber schon mal eine RISSEN DANK, das erleichtert mir unheimlich meine Arbeit.

    DANKE.

  • Formular auf Webseite Automatisch ausfüllen. ... Hilfe

    • Muecke
    • 7. Dezember 2016 um 22:21

    Da ich das Script soweit schon fertig habe, würde ich nur sehr ungern es neu schreiben in dem ich mich in die "winhttp.au3" einlese, was bei einem Neuen Projekt jedoch bestimmt Sinnvoll ist.

    Ich bin mir nicht sicher ob ich dir folgen kann.

    1. Form Objekt ermitteln
    das sollte damit gehen.

    AutoIt
    $oForm = _IEFormGetObjByName ($oIE, "searchGenericNumber")

    2. Element Objekt ermitteln
    das sollte damit gehen.

    AutoIt
    $oQuerySuche = _IEFormElementGetObjByName ($oForm, "searchGenericArticleNumber")

    3. Einen erlaubten Wert für das Element Objekt setzen
    das sollte damit gehen.

    AutoIt
    _IEFormElementSetValue ($oQuerySuche,"Mein Suchbegriff")

    So das ist die Vorgehensweise beim Imputierend, jetzt möchte ich die Select Box Finden.

    Das Formular habe ich ja schon gefunden also muss ich das ja nicht mehr suchen.
    Dann muss ich jetzt die Box finden.
    das würde ich so machen.

    AutoIt
    $oQuerySuche = _IEFormElementGetObjByName ($oForm, "brandno")

    Und jetzt muss ich das Element setzen.

    das würde ich so machen.

    AutoIt
    _IEFormElementSetValue ($oQuerySuche,"113")

    Mein vollständiger Code würde also so ausschauen.

    AutoIt
    $oForm = _IEFormGetObjByName ($oIE, "searchGenericNumber")
    $oQuerySuche = _IEFormElementGetObjByName ($oForm, "searchGenericArticleNumber")
    _IEFormElementSetValue ($oQuerySuche,"Mein Suchbegriff")
    $oQuerySuche = _IEFormElementGetObjByName ($oForm, "brandno")
    _IEFormElementSetValue ($oQuerySuche,"113")

    Mein Suchbegriff wird eingetragen, die Select box bleibt einfach unverändert , ich bekomme auch keine Fehlermeldung.
    Was habe ich Falsch verstanden?


    Gruß Mücke

  • Formular auf Webseite Automatisch ausfüllen. ... Hilfe

    • Muecke
    • 7. Dezember 2016 um 16:49

    Hallo miteinander,

    ich möchte ein Formular automatisch ausfüllen lassen, das klappt ach schon sehr gut, doch ein Element in diesem Formular bekomme ich einfach nicht ausgefüllt.
    Daher meine Frage ob ihr mir etwas Helfen könnt.

    Leider ist das Formular in einem B2B Shop bei den man sich zuerst mit einem Passwort einloggen muss somit kann ich euch leider keinen Link zum Formular geben :( .

    Wie ich bisher auf das Formular zugreife:

    AutoIt
    ; ********** 7.9)  Suchanfrage auf Webseite eintragen **************************
    
    
    		$oForm = _IEFormGetObjByName ($oIE, "searchGenericNumber")				; Innerhalb dieser Webseite gibt es ein Formular - Wir holen uns einen Zeiger auf dieses Formular
    		$oQuerySuche = _IEFormElementGetObjByName ($oForm, "searchGenericArticleNumber")	; Wir holen uns eien Zeiger auf das Such Elemente
    		_IEFormElementSetValue ($oQuerySuche,StringStripWS($aArray_Suche[$i_Suche],3))		; Wert in das vorgesehende Feld eintragen    ""StringStripWS"" Führende und nachfolgende Leerstellen


    Die Suchbegriffe kommen aus einer Text Datei.

    Jetzt habe ich Hinter diesem Feld eine Select Box in die ich gerne einen Wert eintragen möchte, doch ich bekomme das einfach nicht hin :(


    Habe mal einen kleinen teil des Quellcodes der Webseite kopiert hoffe das reicht.


    HTML
    <form id="searchGenericNumber" action="/de/de/wearparts/articledirectsearch/searchType/P" method="get">
    
    
      <input placeholder="Search Generic ArticleNumber" class="wearpartsGenericNumberInputText" type="text" name="searchGenericArticleNumber" value=""/>
    
    
      <select data-placeholder="Auswahl" style="width:25%; margin-bottom: 25px;" name="brandno" class="chosen-select" id="wearpartsManufacturer" onkeyup="">
        <option/>
          <option value="111">Auswahl 1</option>
          <option value="112">Auswahl 2</option>
          <option value="113">Auswahl 3</option>
          <option value="114">...</option>
      </select>
    
    
    <input type="submit" class="widget-button wearpartsGenericNumberSearch" value="Suchen" />
    
    
    </form>
    Alles anzeigen

    Würde mich Rissig freuen wenn mir jemand dabei Helfen würde das ich Auswahl 3 in die Select Box rein geschrieben bekomme.


    gruß Mücke

    EDIT: ich mache das ganze im IE ! nicht im FF.

  • [OT] Tastendruck am Monitor anzeigen

    • Muecke
    • 25. Oktober 2016 um 23:21

    ganz genau so was habe ich gesucht. Danke.

  • [OT] Tastendruck am Monitor anzeigen

    • Muecke
    • 25. Oktober 2016 um 18:46

    ich habe auch schon viele Videos gesehen wo das drin ist. Ich habe nur kein Tool gefunden.

    Mir würde es auch reichen wenn ich das nachträglich machen könnte.

  • [OT] Tastendruck am Monitor anzeigen

    • Muecke
    • 25. Oktober 2016 um 18:38

    das habe ich.

    Kennt ihr ein free progam mit dem ich ein Text in das Video einfügen kann, dann könnte ich die Tastendrucke zu gegebener Zeit nachträglich einfügen.

  • [OT] Tastendruck am Monitor anzeigen

    • Muecke
    • 25. Oktober 2016 um 18:04

    Hallo miteinander,

    ich möchte mir die Gedrückten Tasten auf dem Monitor gerne anzeigen lassen.

    Warum ich das haben möchte:

    ich möchte für meine Kollegen ein Video machen wie man bestimmte Dinge am PC erledigt unter anderem gehören da bestimmte Tastenkürzel mit dazu doch die Siht man natürlich im Video nicht :( daher würde ich mir werend der Video Aufzeichnung des Monitore die Tastendrücke gerne mit einblenden lassen.

    Ich verwende das Tool "Free Screen Recorder".

    Hat jemand eine Idee wie man das hin bekommt?

    Gruß Mücke

  • Prüfen ob Datei richtig geöffnet werden

    • Muecke
    • 21. Oktober 2016 um 18:31

    OK, dann muss das doch mit rein, und ist nicht Doppelt gemoppelt, das große Problem ist nicht die Bequemlichkeit sonder zu wissen welche Fehler auftreten können um diese dann auch abfangen zu können.

    Denn wenn man nicht wies das ein Fehler auftreten kann oder welche Fehler auftreten können dann kann man Sie auch schlecht abfragen ;)
    aus dem Grund möchte ich meinen Code so gut wie möglich verstehen und wissen was wie wo passiert und gemacht wird, denn nur dann kann man Fehler finden und abfangen und darauf entsprechend reagieren.

    Danke für deine Antwort. das ist schon mal gut zu wissen. Danke.

  • Prüfen ob Datei richtig geöffnet werden

    • Muecke
    • 21. Oktober 2016 um 17:47

    alpines: ups. da ist etwas um eine ziele vertuscht. Sorry.


    Ja das ist richtig das fileclose() habe ich hier nicht mit dabei da es in der OnAutoItExitRegister("onExit") mit drin stehen habe. Dort schlisse ich alle Dateien die ich geöffnet habe zur Sicherheit noch ein mal.


    Ich prüfe doch in Ziele 1 ob die Datei Existiert wenn nicht dann erstelle ich die Datei in Zeile 2 Wenn Sie doch Existiert dann öffne ich die Datei in Zeile 6.

    Habe ich dann nicht schon geprüft ob ich alle Berechtigungen etc. habe? und auch ob ich mit der Datei arbeiten kann?
    Benötige ich dann den teil Zeile 8 - 11 dann dann wirklich oder ist dies eher Doppelt gerempelt?

  • Prüfen ob Datei richtig geöffnet werden

    • Muecke
    • 21. Oktober 2016 um 17:10

    ich habe bei mir im Code = das ich einen Code habe der bei mir auf dem Rechner ist?
    eine Datei bei in die ich hinein schreiben. = wie sagt man das denn sonst wenn ich über den Code eine Datei erstelle und in die hinein schreib?
    die Datei ist doch dann im Code verankert oder nicht?

  • Prüfen ob Datei richtig geöffnet werden

    • Muecke
    • 21. Oktober 2016 um 16:52

    Hallo miteinander,

    ich habe bei mir im Code eine Datei bei in die ich hinein schreiben.

    wenn die Datei existiert Öffne ich diese so das ich ans Ende Schreiben kann,
    wenn die Datei nicht Existiert dann erstelle ich die Datei und Schreibe eine Kopfzeile hinein.

    Jedoch habe ich immer die zielen 9. bis 12. mit dabei, ich verstehe nur nicht was da eigentlich gemacht wird.

    kann mir jemand sagen was da genau gemacht wird und warum ich das in meinen Code drin haben sollte, oder ob das Überflüssig ist.


    Gruß Mücke


    AutoIt
    If Not FileExists($File_Name) then                                          ; Wenn Nihct ExistirtDatei dann 
    		$File = FileOpen($File_Name, 2)		                                    ;     Datei Erstellen und öffnen
    		FileWrite($File, "Datum; Herstellernummer; EAN;" & _
                             "Lieferantenname; EK; URL"& @CRLF)                     ;     In Neue Datei die Kopfzeile einfügen 
    	Else                                                                        ; Datei hat Existirt dann 
    		$File = FileOpen($File_Name, 1)		                                    ;     Datei Öffnen und an das Ende schreiben
    	EndIf                                                                       ; Ende der abfrage 
    	If $File = -1 Then											                ; Pfüfen ob die Datei richtig geöffnet wurde
    	 MsgBox(0, "Fehler", "Datei kann nicht geöffnet werden.")
    	 Exit
    	EndIf
    Alles anzeigen
  • Weiterzählen bis Inhalt kommt

    • Muecke
    • 21. Oktober 2016 um 13:28

    He he, auf deinen Bassis habe ich den richtigen Denkanstoß bekommen. und mir ein Test Programm geschrieben.

    AutoIt
    #include <Array.au3>
    Local $aArray_Suche[11]
    
    
    $i_Suche         = 0                   ; Kurzzeitgedächnis
    $aArray_Suche[0] = 10                  ; Anzahl der Zeilen in der gelesenen Datei
    
    
    
    
    ; Array befüllen
    
    
    For $i_Suche = 1 to $aArray_Suche[0] Step 1
       $aArray_Suche[$i_Suche] = "Test "& $i_Suche            ; Zeile n
    Next
    
    
    ; Array nummer 5, 6, 7 Leeren
       $aArray_Suche[5] = ""
       $aArray_Suche[6] = ""
       $aArray_Suche[7] = ""
    
    
    ; Kurzzeitgedächnis zurück setzen
       $i_Suche         = 0                   ; Kurzzeitgedächnis
    
    
    
    
    
    
    For $x = 1 to $aArray_Suche[0] + 10 Step 1 ; Das simulirt mein restliches programm
    
    
    		While 1
    		 $i_Suche = $i_Suche + 1
    
    
    		  if $i_Suche > $aArray_Suche[0] then
    			MsgBox (64, "ENDE", "$i_Suche ist Größer als das Array")
    			Exit
    		  EndIf
    
    
    		  if $aArray_Suche[$i_Suche] > "" then
    			ExitLoop
    		  EndIf
    		  ;MsgBox (64, "Inerhalb von  DO Until", "$aArray_Suche = " & $aArray_Suche[$i_Suche] & @CRLF & "$i_Suche = " & $i_Suche)
    
    
    		WEnd
    
    
    		MsgBox (64, "Auserhalb von DO Until", "$aArray_Suche = " & $aArray_Suche[$i_Suche] & @CRLF & "$i_Suche = " & $i_Suche)
    
    
    
    
    next ; Das simulirt mein restliches programm
    Alles anzeigen

    die Zeile 24. habe ich mit drin da mein Programm immer bei einen HotKeySet hier weiter Zählen soll/muss, damit ich das übrige Programm also Simulieren kann habe ich eine Schleife darum gelegt die Größer ist als das Test Array :)

    Danke.

    ich glaube zwar das man das noch Kompakter zusammen fassen kann doch das Funktioniert das ist wichtig.


    DANKE.

    Gruß Mücke

  • Weiterzählen bis Inhalt kommt

    • Muecke
    • 21. Oktober 2016 um 12:39

    Hallo miteinander,

    ich habe ein kleines Denk Problem.

    ich habe in einer Datei Suchworte stehen (jeweils zeilenweise)
    Die Datei lese ich in ein Array ein.

    Array Ebene 0 = Anzahl der gesamten Zeilen
    Array Ebene 1 - ... = Zeilenweise die Suchanfrage

    jetzt möchte ich die Nächste Suchanfrage aufrufen, das mache ich so.


    AutoIt
    .... 
    #include <IE.au3>                                                           ; Funkzionen für den Internet Explorer laden#include <Date.au3>                                                            ; Funkzionen füs Datum laden#include <file.au3>                                                            ; Funkzionen für Dateimenegment
    .... 
      $File_Suche = "/Suche_Import.txt"  $i_Suche    = 0                                                             ; kurzzeitgedächtnis  Global $aArray_Suche = ""                                                    ; Variable für Suchbegriffe Definiren_FileReadToArray(@DesktopDir & $File_Suche, $aArray_Suche)                  ; Datei für Suchbegrife auslesen
    .... 
        $i_Suche = $i_Suche + 1                                              ; Zähler für die zeilennummer um 1 erhöhen    if $aArray_Suche[0]< $i_Suche then        MsgBox(64, "Hinweis", "Keine Suchergebnisse mehr")        Exit ; Array[0] hat die Zeilenanzahl gespeichert    EndIf


    jetzt habe ich das Problem das eine Zeile auch mal Leer sein kann also würde ich gerne bei einer leeren ziele eine Zeile weiter Springen.
    das Würde ich dann so machen.


    AutoIt
    $i_Suche = $i_Suche + 1                                              ; Zähler für die zeilennummer um 1 erhöhen    if $aArray_Suche[0]< $i_Suche then        MsgBox(64, "Hinweis", "Keine Suchergebnisse mehr")        Exit ; Array[0] hat die Zeilenanzahl gespeichert    EndIf
        if $aArray_Suche[$i_Suche] = "" then
           $i_Suche = $i_Suche + 1                                              ; Zähler für die zeilennummer um 1 erhöhen
        EndIf

    Das geht jedoch nur dann wenn ich nur eine leer Zeile habe und nicht zwei aufeinander folgend.
    Einfach mal 100 If abfragen einzubauen finde ich etwas daneben, und ich muss auch jedes mal drauf achten das die zielen nummre dann nicht zu groß wird bevor ich das Array auslesen möchte sonst bekomme ich einen Error


    Wie kann ich es anstellen am besten mit einen Art Loop die Zeilennummer zu erhöhen bis wider Inhalt vorhanden ist oder das Ende erreicht ist wenn das Ende Erreicht ist soll das Programm beendet werden, mit einer kleinen Nachricht.


    Gruß Mücke

  • Daten von einer Webseite auslesen

    • Muecke
    • 21. Oktober 2016 um 09:30

    danke Kanashius. das ist perfekt. danke.

    so langsam aber sicher wird das richtig genial das Script für mich. ich bin gerade so Heppy DANKE.

  • Daten von einer Webseite auslesen

    • Muecke
    • 20. Oktober 2016 um 20:06

    Ja, das Fenster habe ich bisher nicht beachtet, muss ich wohl öfters drauf schauen, :) das bringt mich dann etwas weiter :)

    Ja ich möchte im Fehlerfall weiter machen daher frage ich den Fehler ab bzw. schaue ob ein Arrey existiert und wenn nicht gehe ich davon aus das der Wert nicht vorhanden war, und setze dann ein "# NV #" ein, so kann ich die Daten dennoch in die Datei weiter schreiben, und es Stürzt nicht ab :)


    Jetzt ist mir nur aufgefallen das die Methode um die $Herstellernummer und $aEAN leider auch nicht geht sobald es sich nicht nur um zahlen sondern Zahlen und Buchstaben handelt. dann ist das auch leer :(


    am was könnte das liegen?

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™