Online "Inputs" ausfüllen

  • Hallo,
    ich möchte für die Seite:
    http://media-convert.com/konvertieren/
    Ein Programm schreiben!
    Und zwar möchte ich die Inhalte per GUI ausfüllen und die Datei auch darüber hochladen.
    Da ich diese Seite oft nutze möchte ich es mir etwas einfacher machen.
    Jedoch finde ich die IE Befehle sehr kompliziert.

    Könnte mir jemand anhand vone einem Input erklären wie ich die IE_Funktionen benutzen kann?

  • ungetestet, aber etwa so.

    [autoit]

    #include <IE.au3>
    $oIE=_IECreate("http://media-convert.com/konvertieren/",0,1,1)
    $oFileInput=_IEGetObjByName($oIE,"Fichier")
    _IEFormElementSetValue($oFileInput,"C:\Datei.txt")

    [/autoit]


    Nächstes Mal zeigst du erstmal einen Versuch :thumbup:

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Einen Versuch hatte ich nicht =D
    Weil ich nicht wusste wie ich überhaupt anfangen soll^^

    So dann bin ich auf folgendes Problem gestoßen:
    <select name="format1" onChange="format1change(form1,document);">
    Das wird wahrscheinlich die Dateityp Auswahl sein, in die Konvertiert werden soll.
    Kan ich dieses Menü auch in eine GUI integrieren?
    Was das angeht stehe ich gerade auf dem Schlauch !
    Denn irgendwie muss das ja auch an die Internetseite "gesendet" werden.

    Und hier noch mein Skript:

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Online Konverter", 625, 573, 335, 185)
    $Label1 = GUICtrlCreateLabel("Online Konverter by Benne", 48, 16, 530, 47)
    GUICtrlSetFont(-1, 28, 800, 0, "Lucida Fax")
    $DataSelect = GUICtrlCreateInput("", 160, 184, 257, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
    $Search = GUICtrlCreateButton("Durchsuchen", 224, 136, 121, 25, 0)
    $Format = GUICtrlCreateCombo("", 200, 288, 193, 25)
    $Label2 = GUICtrlCreateLabel("Das Format auswählen!", 160, 240, 261, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "Lucida Fax")
    $Label3 = GUICtrlCreateLabel("Datei auswählen!", 192, 88, 192, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "Lucida Fax")
    $Label4 = GUICtrlCreateLabel("Bitte gebe deine E-Mail Adresse an!", 88, 352, 393, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "Lucida Fax")
    $Email = GUICtrlCreateInput("", 168, 392, 249, 21)
    $Button1 = GUICtrlCreateButton("Abschicken!", 48, 448, 521, 89, 0)
    GUICtrlSetFont(-1, 36, 800, 0, "Lucida Fax")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]

    2 Mal editiert, zuletzt von PokerFace (22. August 2009 um 10:30)

  • Mit IE ( V 8 ) wird das so einfach nichts, denn:

    Code
    --> IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidObjectType (Browser securuty prevents SetValue of TYPE=FILE)


    wäre auch schlimm weder jeder per JavaScript einen Datei-Input ausfüllen könnte.

    [EDIT]
    Das Beispiel aus der Hilfe mit focus auf den Input und Send funktioniert auch nicht mehr.

    Einmal editiert, zuletzt von Stilgar (22. August 2009 um 10:44)

  • Das könnte sein...

    Eine aktuelle Version meines Skriptes

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Online Konverter", 625, 573, 335, 185)
    $Label1 = GUICtrlCreateLabel("Online Konverter by Benne", 48, 16, 530, 47)
    GUICtrlSetFont(-1, 28, 800, 0, "Lucida Fax")
    $DataSelect = GUICtrlCreateInput("", 160, 184, 257, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
    $Search = GUICtrlCreateButton("Durchsuchen", 224, 136, 121, 25, 0)
    $Format = GUICtrlCreateCombo("", 200, 288, 193, 25)
    $Label2 = GUICtrlCreateLabel("Das Format auswählen!", 160, 240, 261, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "Lucida Fax")
    $Label3 = GUICtrlCreateLabel("Datei auswählen!", 192, 88, 192, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "Lucida Fax")
    $Label4 = GUICtrlCreateLabel("Bitte gebe deine E-Mail Adresse an!", 88, 352, 393, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "Lucida Fax")
    $Email = GUICtrlCreateInput("", 168, 392, 249, 21)
    $Send = GUICtrlCreateButton("Abschicken!", 48, 448, 521, 89, 0)
    GUICtrlSetFont(-1, 36, 800, 0, "Lucida Fax")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Search
    Global $FilePath = FileOpenDialog ("Bitte wähle die zu konvertierende Datei aus!", @WindowsDir&"\", "",1)
    Case $Send
    Global $Value = "1018"
    _Konvert()
    EndSwitch
    WEnd

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

    Func _Konvert()
    $oIE=_IECreate("http://media-convert.com/konvertieren/",0,1,1)
    $oFileInput = _IEGetObjByName($oIE,"Fichier")
    _IEFormElementSetValue($oFileInput,$FilePath)
    $oFileConvert = _IEGetObjByName ($oIE, "format1")
    _IEFormElementSetValue($oFileConvert, $Value)
    EndFunc

    [/autoit]

    Kann mir jemand einen Tipp geben, wie ich die Namen der Buttons finden kann?
    Ich möchte den "OK" Button per AutoIt betätigen, jedoch finde ich die ID bzw. den Namen nicht.
    Kann mir jemand zeigen wie man Namen und ID's findet?^^

  • Namen usw. findest du in diesem Teil des Quellcodes:

    Code
    <td nowrap="nowrap"><a href="#conditions">Ich akzeptiere<br>die Regeln</a></td><td>
    
    
    <input onclick="javascript:if (valide(form1)) { startupload(form1,'de',''); }; " class="mc-button" name="Ok" id="btok" value="OK" type="button">
    <input name="pg" value="envoi" type="hidden">

    nur wie schon gesagt, du kannst die Eingabe des Dateinamens nicht automatisieren:
    http://www.autoitscript.com/forum/index.php?showtopic=81922&st=0&p=587437
    das ging noch mit IE7 mit IE8 nicht mehr.

  • Danke Stilgar !
    Ich habe dann auchmal die Variante probiert die Funktionieren soll.
    mhh
    Das Problem ist, das der Input auf der Seite ein $WS_Readonly ist.
    Wenn es das auch in HTML gibt ^^
    Mein Ziel ist ja, die Seite unsichtbar laufen zu lassen, wenn alles geht.
    Gibt es denn die Möglichkeit, das ich das IE Fenster unsichtbar mache, dann das Programm auf "Durchsuchen" klickt, ist dann der FileOpenDialog auch unsichtbar?

    Edit:
    Frage hat sich geklärt ^^

  • Spoiler anzeigen
    [autoit]

    #include <IE.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>

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

    #NoTrayIcon

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

    Global $oIE=_IECreate("http://media-convert.com/konvertieren/",0,0,1)

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Online Konverter", 625, 573, 335, 185)
    $Label1 = GUICtrlCreateLabel("Online Konverter by Benne", 48, 16, 530, 47)
    GUICtrlSetFont(-1, 28, 800, 0, "Lucida Fax")
    $DataSelect = GUICtrlCreateInput("", 160, 184, 257, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
    $Search = GUICtrlCreateButton("Durchsuchen", 224, 136, 121, 25, 0)
    $Format = GUICtrlCreateCombo("", 200, 288, 193, 25)
    $Label2 = GUICtrlCreateLabel("Das Format auswählen!", 160, 240, 261, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "Lucida Fax")
    $Label3 = GUICtrlCreateLabel("Datei auswählen!", 192, 88, 192, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "Lucida Fax")
    $Label4 = GUICtrlCreateLabel("Bitte gebe deine E-Mail Adresse an!", 88, 352, 393, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "Lucida Fax")
    $Email = GUICtrlCreateInput("", 168, 392, 249, 21)
    $Send = GUICtrlCreateButton("Abschicken!", 48, 448, 521, 89, 0)
    GUICtrlSetFont(-1, 36, 800, 0, "Lucida Fax")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _IEQuit ($oIE)
    Exit
    Case $Search
    _GetFileOpenDialog()
    Case $Send
    Global $Value = "1018"
    _Konvert()
    EndSwitch
    WEnd

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

    Func _GetFileOpenDialog()
    Global $oFileInput = _IEGetObjByName($oIE,"Fichier")
    _IEAction ($oFileInput, "click")
    EndFunc

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

    Func _Konvert()
    If Not IsDeclared ($oIE) Then
    Global $oFileConvert = _IEGetObjByName ($oIE, "format1")
    _IEFormElementSetValue($oFileConvert, $Value)
    Global $oButtonOK = _IEGetObjById ($oIE, "btok")
    _IEAction ($oButtonOK, "click")
    _IEAction ($oIE, "visible")
    Else
    MsgBox (0, "Achtung", "Erst die Datei auswählen!")
    EndIf
    EndFunc

    [/autoit]

    So wird schonmal alles eingegeben..
    Kannst es ja mal ausprobieren ! ^^
    Ebenso wird der Ok Button geklickt.
    Nur mein Problem sind die Zeilen:

    [autoit]


    $Value = "1018" ;Angeblick der Wert der in die Combo kommt, damit Word 2003 ausgewählt wird !
    Global $oFileConvert = _IEGetObjByName ($oIE, "format1")
    _IEFormElementSetValue($oFileConvert, $Value)

    [/autoit]

    Mh najaa.. ^^
    So sieht es jetzt aus:

    Spoiler anzeigen
    [autoit]

    ;Writte by PokerFace
    ;If you change something, please let me know :)

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

    #include <IE.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>

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

    #NoTrayIcon

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

    Global $oIE=_IECreate("http://media-convert.com/konvertieren/",0,1,1)

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Online Konverter", 625, 573, 335, 185)
    $Label1 = GUICtrlCreateLabel("Online Konverter by Benne", 48, 16, 530, 47)
    GUICtrlSetFont(-1, 28, 800, 0, "Lucida Fax")
    $DataSelect = GUICtrlCreateInput("", 160, 184, 257, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
    $Search = GUICtrlCreateButton("Durchsuchen", 224, 136, 121, 25, 0)
    $Format = GUICtrlCreateCombo("", 200, 288, 193, 25)
    $Label2 = GUICtrlCreateLabel("Das Format auswählen!", 160, 240, 261, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "Lucida Fax")
    $Label3 = GUICtrlCreateLabel("Datei auswählen!", 192, 88, 192, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "Lucida Fax")
    $Label4 = GUICtrlCreateLabel("Bitte gebe deine E-Mail Adresse an!", 88, 352, 393, 28)
    GUICtrlSetFont(-1, 16, 800, 0, "Lucida Fax")
    $Email = GUICtrlCreateInput("", 168, 392, 249, 21)
    $Send = GUICtrlCreateButton("Abschicken!", 48, 448, 521, 89, 0)
    GUICtrlSetFont(-1, 36, 800, 0, "Lucida Fax")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _IEQuit ($oIE)
    Exit
    Case $Search
    _GetFileOpenDialog()
    Case $Send
    Global $Value = "1402"
    _Konvert()
    EndSwitch
    WEnd

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

    Func _GetFileOpenDialog()
    Global $oFileInput = _IEGetObjByName($oIE,"Fichier")
    _IEAction ($oFileInput, "click")
    EndFunc

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

    Func _Konvert()
    If Not IsDeclared ($oIE) Then
    Global $oFileConvert = _IEGetObjByName ($oIE, "format2")
    _IEFormElementSetValue($oFileConvert, $Value)
    Global $oButtonOK = _IEGetObjById ($oIE, "btok")
    _IEAction ($oButtonOK, "click")
    _IEAction ($oIE, "visible")
    Else
    MsgBox (0, "Achtung", "Erst die Datei auswählen!")
    EndIf
    EndFunc

    [/autoit]


    Nur noch das Ausgangsformat wird nicht angeklickt ... =(
    Da muss ich mich wohl nochmal vorklemmen..

    Info:
    format1 = Eingangsformat
    fromat2 = Anscheinend Ausgangsformat! Ich weiß nicht genau wieso es nicht geht!

    3 Mal editiert, zuletzt von PokerFace (22. August 2009 um 12:05)

  • Ausgangformat müßte folgendes sein:

    [autoit]

    Global $oFileConvert = _IEGetObjByName ($oIE, "format2")
    _IEFormElementOptionSelect($oFileConvert, $Value)

    [/autoit]


    Warum deklarierst du die Variablen in den Funktionen denn alle "global" ? Brauchst du die noch irgendwo anderst, außer in den Funktionen selbst?

  • Hallo,
    ich habe irgendwo mal gelesen, das es besser wäre, wenn man die Variabeln immer Global deklariert.
    Das das auch fehler verhindert und so^^

    Ich werde deinen Vorschlag gleich mal testen ! Danke !

  • Push
    ---
    Es tut mir Leid, denn es geht immer noch nicht.
    Du kannst es ja einfach mal selbst in SciTe kopieren !
    Dann erkennst du den Fehler vieleicht etwas besser. :)

    Dank trotzdem !

  • Ist noch nicht vergessen, bin noch am probieren.
    Mit FF geht das - eine Zeile und es funktioniert, mit IE kann ich diese Option einfach nicht ändern, egal was ich probiere ?(
    Wer eine Lösung hat - nur her damit :D

  • Ich selber nutze FF :rolleyes:
    Kannst du vieleicht das Skript in FF Version auch mal posten? =)
    Leider hat nicht jeder den FF. :(
    Aber der Konverter ist für meine Klasse ^^
    Da die meisten OpenOffice oder Office 2007 haben.
    So kann mein Lehrer die nicht öffnen.
    (Weil die zu "dumm" sind in .doc zu speichern xD)

    Nur wenige nutzen den FF..^^
    Obwohl der FF 3.5 richitg gut ist !