ie - Fenster in GUI

  • also in der Hilfe hab ich nichts darüber gefunden, aber mich würde interessieren ob es geht. Ein ie-Fenster in der GUI? Wenn ja wie oder Anfänge wie man das realisieren könnte

    hier mal wie ich es gerne haben möchte und noch eine Frage dazu:
    [Blockierte Grafik: http://leviathan-design.de/~upload1/ftpfl.png]

    ich möchte bei der listview unten gerne, dass er wenn ich gleich mehrere Dateien einfüge das er den Dateifpad so abschneided -> hab irgendwie noch keinen style oder exstyle gefunden, der das unterbindet

    Einmal editiert, zuletzt von leviathan (19. Februar 2007 um 17:14)

    • Offizieller Beitrag

    Hi,

    IE in GUI gibt es doch das BSP in der Hilfe, oder?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    ; Simple example: Embedding an Internet Explorer Object inside an AutoIt GUI
    ;
    ; The full example is available in the test\ActiveX directory (TestXInternet.au3)
    ;
    ; See also: http://msdn.microsoft.com/workshop/brows…netexplorer.asp

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

    $oIE = ObjCreate("Shell.Explorer.2")

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

    ; Create a simple GUI for our output
    GUICreate ( "Embedded Web control Test", 640, 580,(@DesktopWidth-640)/2, (@DesktopHeight-580)/2 , $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS)
    $GUIActiveX = GUICtrlCreateObj ( $oIE, 10, 40 , 600 , 360 )
    $GUI_Button_Back = GuiCtrlCreateButton ("Back", 10, 420, 100, 30)
    $GUI_Button_Forward = GuiCtrlCreateButton ("Forward", 120, 420, 100, 30)
    $GUI_Button_Home = GuiCtrlCreateButton ("Home", 230, 420, 100, 30)
    $GUI_Button_Stop = GuiCtrlCreateButton ("Stop", 330, 420, 100, 30)

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

    GUISetState () ;Show GUI

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

    $oIE.navigate("http://www.autoitscript.com")

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

    ; Waiting for user to close the window
    While 1
    $msg = GUIGetMsg()

    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $GUI_Button_Home
    $oIE.navigate("http://www.autoitscript.com")
    Case $msg = $GUI_Button_Back
    $oIE.GoBack
    Case $msg = $GUI_Button_Forward
    $oIE.GoForward
    Case $msg = $GUI_Button_Stop
    $oIE.Stop
    EndSelect

    Wend

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

    GUIDelete ()

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

    Exit

    [/autoit]

    So long,

    Mega

  • ok ich gebs auf den Wald vor lauter Bäumen nicht gesehen

    edit:
    gut dann werd ich mich gleich ma ransetzen und weiterarbeiten thx

    Einmal editiert, zuletzt von leviathan (20. Februar 2007 um 11:24)

  • hier nochmal die Problemschilderung:

    [Blockierte Grafik: http://leviathan-design.de/~upload1/ss122722.jpg]

    also wenn ich eine Datei einzeln hinzufüge dann bekomm ich bei file den kompletten dateifpad, aber wenn ich beim öffnen mehrere Dateien auswähle und die in die listview einfüge, dann steht oben wie im Bilde E:\Eigene Datein

    und darunter die einzelnen Datein. Ich möchte aber das es auch bei mehreren Dateihinzufügen der komplette dateifpad angezeigt werden soll

  • also ich mach das über fileopendialog und werte dann das array aus

    [autoit]


    $multifile = StringSplit($file, "|")
    For $i = 1 To $multifile[0]
    $size = FileGetSize($multifile[$i])/1048576
    $size = Round($size, 2)
    $fn = StringSplit($multifile[$i], "\")
    Global $fnos = $fn[$fn[0]]
    ;Msgbox(0,"",$fnos)
    $item = GuiCtrlCreateListViewItem("|||", $lv_queue)
    $data = $multifile[$i]&" |"&$size&" MB"&" |"&"in queue"&" |"&$fnos
    GUICtrlSetData($item, $data)
    Next

    [/autoit]
  • naja eben nicht ich will: E:\Eigene Datein\blubb.jpg <-- so soll es immer aussehen

    wenn ich es mit der multifileadd mach dann gibt er es so aus.

    E:\Eigene Datein
    fsf.jpg
    fsdfsd.jpg
    sadf.jpg

    so will ich es nicht

    • Offizieller Beitrag

    Hi,

    verstehe das Problem nicht? So ??? :irre:

    [autoit]

    #include<Array.au3>
    $message = "Hold down Ctrl or Shift to choose multiple files."

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

    $var = FileOpenDialog($message, @DesktopCommonDir & "\", "All (*.*)", 1 + 4)

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

    If @error Then
    MsgBox(4096, "", "No File(s) chosen")
    Else
    $var = StringSplit($var, "|")
    For $i = 2 To UBound($var) - 1
    $var[$i] = $var[1] & '\' & $var[$i]
    Next
    _ArrayDisplay($var, "Gewählt wurde")
    EndIf

    [/autoit]

    So long,

    Mega

  • nein eben nicht dann müsste ich ja immer wieder noch aus $var[1] davorhängen - warum macht er das eigentlich gleich automatisch so?

    mal noch eine andere Frage - ich gehe auf den FTP-Server über $oIE.navigate($url) kann man da auch irgendwie machen, dass er gleich die Detailsansicht darstellt?

    mh schon wieder ein Problem aufgetreten; ich will dann die einzelnen Zeilen auslesen und mit den Daten die Datein hochladen; hier mal das komplette Skript ;)

    Spoiler anzeigen
    [autoit]


    ; ------------------------------------------------------------------------------
    ;
    ;
    ; Language: Deutsch
    ; Platform: Win2k / XP
    ; Author: Leviathan
    ;
    ; Script Function: Ftp-Upload-Tool --> Can handle multifile-upload
    ;
    ; ------------------------------------------------------------------------------
    Global $server = '85.214.67.137'
    Global $username = 'upload1'
    Global $pass = 'affenkotze'
    Global $item[999]
    Global $multifile = 2

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

    #include <GUIConstants.au3>
    #include <ftp.au3>
    #include <File.au3>
    #include <Array.au3>
    #include <Array2D.au3>
    #Include <GuiListView.au3>

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

    $maingui = GUICreate("FileUploader Extened by Leviathan", 636, 563, 194, 125)
    $choosefilelabel = GUICtrlCreateLabel("Choose File:", 8, 152, 74, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $fileinput = GUICtrlCreateInput("", 104, 152, 233, 21)
    $butt_open = GUICtrlCreateButton("Open", 112, 216, 57, 17, 0)
    $filenameonserverlabel = GUICtrlCreateLabel("Filename on Server:", 0, 184, 98, 17)
    $filename = GUICtrlCreateInput("", 104, 184, 233, 21)
    $butt_upload = GUICtrlCreateButton("Upload", 8, 280, 73, 17, 0)
    $butt_addtoqueue = GUICtrlCreateButton("Add to Queue", 8, 216, 89, 17, 0)
    $lv_queue = GUICtrlCreateListView("file |size |status |fn |", 8, 384, 617, 153, $LVS_SINGLESEL,$LVS_EX_GRIDLINES)

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

    $oIE = ObjCreate("Shell.Explorer.2")
    $GUIActiveX = GUICtrlCreateObj ( $oIE, 344, 32, 281, 337 )

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

    ;$lv_server = GUICtrlCreateListView("file |size |fn |", 344, 32, 281, 337, $LVS_SINGLESEL,$LVS_EX_GRIDLINES)
    $queuelabel = GUICtrlCreateLabel("Queue:", 24, 360, 45, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $butt_download = GUICtrlCreateButton("Download", 88, 280, 89, 17, 0)
    $butt_getlink = GUICtrlCreateButton("Get Link", 183, 280, 89, 17)
    $connectionlabel = GUICtrlCreateLabel("Connection:", 8, 8, 72, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $serveraddresslabel = GUICtrlCreateLabel("Serveraddress:", 8, 32, 75, 17)
    $loginlabel = GUICtrlCreateLabel("Login:", 8, 56, 33, 17)
    $passlabel = GUICtrlCreateLabel("Pass:", 8, 80, 30, 17)
    $butt_connect = GUICtrlCreateButton("Connect", 8, 120, 89, 17)
    $portlabel = GUICtrlCreateLabel("Port:", 264, 32, 26, 17)
    $serverlabel = GUICtrlCreateLabel("Server:", 344, 8, 45, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $serveraddresseinput = GUICtrlCreateInput("", 96, 32, 161, 21)
    $portinput = GUICtrlCreateInput("21", 296, 32, 41, 21)
    $logininput = GUICtrlCreateInput("", 96, 56, 161, 21)
    $passinput = GUICtrlCreateInput("", 96, 80, 161, 21, $ES_PASSWORD)
    GUISetState(@SW_SHOW)
    _serverdataread()

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

    While 1
    $msg = GUIGetMsg(1)
    If $msg[0] = $GUI_EVENT_CLOSE AND $msg[1] =$maingui Then Exit
    If $msg[0] = $butt_connect AND $msg[1] = $maingui Then _connect()
    If $msg[0] = $butt_addtoqueue AND $msg[1] = $maingui Then _toqueue()
    If $msg[0] = $butt_open AND $msg[1] = $maingui Then opendialog()
    If $msg[0] = $butt_upload AND $msg[1] = $maingui Then _Upload()
    ;IF $msg[0] = $butt_open AND $msg[1] = $maingui Then _fileopendialog()
    ;If $msg[0] = $butt_upload AND $msg[1] = $maingui Then _buttonupload()
    WEnd

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

    Func _connect()
    Global $server = GUICtrlRead($serveraddresseinput)
    Global $username = GUICtrlRead($logininput)
    Global $pass = GUICtrlRead($passinput)
    Global $port = GUICtrlRead($portinput)
    If $port = 21 Then
    Global $url = "ftp://"&$username&":"&$pass&"@"&$server
    ;Msgbox(0,"",$url)
    Else
    $server1 = $server&":"&$port
    Global $url = "ftp://"&$username&":"&$pass&"@"&$server1
    EndIf
    _serverdatawrite()
    $oIE.navigate($url)
    ;$Open = _FTPOpen('getfiles')
    ;$Conn = _FTPConnect($Open, $server, $username, $pass, 1)
    ;_FTPClose($Open)
    EndFunc ;==> _connect()
    Func _serverdatawrite()
    $sdata = FileOpen (@ScriptDir&"\sdata.lev", 2)
    FileWriteLine($sdata, $server)
    FileWriteLine($sdata, $username)
    FileWriteLine($sdata, $pass)
    FileWriteLine($sdata, $port)
    FileClose($sdata)
    EndFunc ;==> _serverdatawrite()
    Func _serverdataread()
    $sdata = FileOpen(@Scriptdir&"\sdata.lev", 0)
    GUICtrlSetData($serveraddresseinput,FileReadLine($sdata, 1))
    GUICtrlSetData($logininput,FileReadLine($sdata, 2))
    GUICtrlSetData($passinput, FileReadLine($sdata, 3))
    GUICtrlSetData($portinput, FileReadLine($sdata, 4))
    FileClose($sdata)
    EndFunc ;==> _serverdataread()
    Func opendialog()
    GUICtrlSetStyle($filename, $GUI_SS_DEFAULT_INPUT)
    GUICtrlSetData($filename, "")
    Global $file = FileOpenDialog("Choose File", @MyDocumentsDir, "All (*.*)", 7)
    Global $multifile = StringInStr($file, "|")
    If $multifile <> 0 then
    GUICtrlSetStyle($filename, $ES_READONLY)
    GUICtrlSetData($filename, "Multifile")
    Global $multifile = 1
    Else
    Global $multifile = 0
    GUICtrlSetData($fileinput, $file)
    Global $fn = guictrlread($filename)
    If $fn = "" Then
    Global $fn = StringSplit($file, "\")
    GUICtrlSetData($filename, $fn[$fn[0]])
    EndIf
    EndIf
    EndFunc ;==> opendialog()
    Func _toqueue()
    If $multifile = 1 then
    $multifile = StringSplit($file, "|")
    For $i = 2 To UBound($multifile) - 1
    ;For $i = 1 To $multifile[0]
    $size = FileGetSize($multifile[$i])/1048576
    $size = Round($size, 2)
    $fn = StringSplit($multifile[$i], "\")
    Global $fnos = $fn[$fn[0]]
    ;Msgbox(0,"",$fnos)
    $item = GuiCtrlCreateListViewItem("|||", $lv_queue)
    $data = $multifile[1]&"\"&$multifile[$i]&" |"&$size&" MB"&" |"&"in queue"&" |"&$fnos
    GUICtrlSetData($item, $data)
    Next
    Else
    If $multifile = 0 Then
    $item = GUICtrlCreateListViewItem("|||", $lv_queue)
    $size = FileGetSize($file)/1048576
    $size = Round($size, 2)
    Global $fn = guictrlread($filename)
    If $fn = "" Then
    Global $fn = StringSplit($file, "\")
    GUICtrlSetData($filename, $fn[$fn[0]])
    EndIf
    $data = $file&" |"&$size&" MB"&" |"&"in queue"&" |"&$fn
    GUICtrlSetData($item, $data)
    Else
    If $multifile = 2 Then
    EndIf
    EndIf
    EndIf
    EndFunc ;==> _toqueue()

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

    Func _Upload()
    For $i = 0 To 999
    $file = _GUICtrlListViewGetItemText($lv_queue, $item, 0)
    $status = _GUICtrlListViewGetItemText($lv_queue, $item, 2)
    $fn = _GUICtrlListViewGetItemText($lv_queue, $item, 3)
    $Open = _FTPOpen('Fileupload')
    $Conn = _FTPConnect($Open, $server, $username, $pass)
    $Ftpp = _FtpPutFile($Conn, $file, $fn)
    $Ftpc = _FTPClose($Open)
    Msgbox(0,"",$file)
    Next
    EndFunc

    [/autoit]

    2 Mal editiert, zuletzt von leviathan (21. Februar 2007 um 18:16)