Datei in Zwischenablage bringen

  • Über das Kontextmenü kann man im Ordner1 eine Datei D:\Ordner1\xxxx.txt mit "Kopieren" in die Zwischenablage bringen und danach diese über das Kontextmenü in den Ordner2 "Einfügen".
    Wie kann ich mit meinem Programm die Datei D:\Ordner1\xxxx.txt so in die Zwischenablage bringen, dass ich anschließend diese über das Kontextmenü in den Ordner2 "Einfügen" kann?
    So geht es jedenfalls nicht:

    Code
    #include <ClipBoard.au3>
    _ClipBoard_SetData("D:\Ordner1\xxxx.txt" ,$CF_HDROP)

    Einmal editiert, zuletzt von DOheim (9. April 2014 um 09:31)

  • Versuch mal:

    [autoit]

    $data = FileRead("D:\Ordner1\xxxx.txt")
    ClipPut($data)

    [/autoit]

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • In AutoIt ist diese Frage eher akademischer Natur, da man Dateien mit einfachen Filecopy() verschieben kann...

  • Recht vielen Dank Micha_he, Andy und Globalhorst für Eure Antworten. Ich werde also mein Programm nach dem "Kopieren" nicht beenden, sondern den Vorschlag mit FileCopy aufgreifen.
    Recht herzlichen Dank nochmals.

  • Ich habe noch etwas herumprobiert und die Lösung gefunden:

    Spoiler anzeigen
    [autoit]

    #include <ClipBoard.au3>
    $datei=@SystemDir&"\notepad.exe"
    $x=xClipboard($datei)
    _ClipBoard_SetData($x,15)
    MsgBox(0,"_ClipBoard_SetData","Jetzt Rechtsklick "&@CRLF&"auf den Desktop oder in einen Ordner, " _
    &@CRLF&"danach 'Einfügen'."&@CRLF&"Dadurch wird notepad.exe kopiert.")
    #cs -------------------------------------------------------------------------------------
    Konvertiert den $dateipfad in das Format, welches für Kontextmenü/Einfügen benötigt wird.
    #ce -------------------------------------------------------------------------------------
    Func xClipboard($dateipfad)
    Local $erg="0x1400000000000000000000000000000001000000" ; Vorspann
    Local $len= StringLen($dateipfad)
    Local $i
    For $i=1 To $len
    Local $a=Asc (StringMid($dateipfad,$i,1))
    Local $h=Hex($a,2)
    $erg=$erg&$h&"00"
    Next
    $erg=$erg&"00000000"
    Return $erg
    EndFunc

    [/autoit]