eigene Funktion mit _FFCmd()

  • Hi,

    ich hätte in meinem Script gene eine Funktion, die mir automatisch eine Liste von Bildern herunterläd. Das kann man prima mit inet Funktionen lösen, ich würde es allerdings gerne mit native FF Möglichkeiten realisieren.
    Ich denke, dass das was ich vorhabe sich prima mit _FFCmd umsetzten lässt, ich bin aber leider in der FF Api nicht so tief drin, und genau hier ist meine Bitte für eine (mehr oder weniger) kleine Hilfestellung.

    Ich habe schon mit folgender Funktion herumexperimentiert

    Code
    Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile).initWithPath(path)

    bekomme es aber interlektuell nicht hin dem Ding eine Quelle mitzugeben. Ohnehin bin ich mir nicht sicher ob der Code da richtig ist....

  • Hallo,

    ein "bisschen" mehr gehöhrt da noch dazu:

    Spoiler anzeigen
    [autoit]

    _FF_DownloadFile("https://developer.mozilla.org/skins/mozilla/Fox3/img/mdc-logo.png", "c:\\") ; Beispiel
    ; ==============================================================================
    Func _FF_DownloadFile($sURL, $sDir = "")
    If $sDir = "" Then
    $sDir = _FFPrefGet("browser.download.defaultFolder")
    If $sDir = "" Then $sDir = @DesktopDir & "\"
    Else
    If Not StringInStr(FileGetAttrib($sDir), "D") Then
    SetError(1)
    Return 0
    EndIf
    EndIf
    Local $sFile = StringMid($sURL, StringInStr($sURL, "/", 2, -1) + 1)
    $sFile = $sDir & $sFile

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

    $sFile = StringReplace($sFile, "\", "\\")
    Local $sJavaScript = 'var Ci=Components.interfaces;var Cc=Components.classes;'
    $sJavaScript &= 'var oSrc=Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService).newURI("' & $sURL & '", null, null);'
    $sJavaScript &= 'var oDst=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);'
    $sJavaScript &= 'oDst.initWithPath("' & $sFile & '");if(!oDst.exists()){oDst.create(0x00,0644);}'
    $sJavaScript &= 'var nsIWBP=Cc["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Ci.nsIWebBrowserPersist);'
    $sJavaScript &= 'nsIWBP.saveURI(oSrc,null,null,null,null,oDst);'
    If _FFCmd($sJavaScript) <> "_FFCmd_Err" And FileExists($sFile) Then Return 1
    SetError(1)
    Return 0
    EndFunc ;==>_FFDownloadFile

    [/autoit]
  • :wacko:
    ..... das hätte ich so nicht hinbekommen, super, vielen Dank!
    Hast du vllt einen Link, wo ich mich in die Materie selbst noch einarbeiten kann?

    In diesem Sinne, nochmals 1000 Dank