Ü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:
Datei in Zwischenablage bringen
-
- [ gelöst ]
-
DOheim -
4. April 2014 um 13:49 -
Erledigt
-
-
Versuch mal:
[autoit]$data = FileRead("D:\Ordner1\xxxx.txt")
[/autoit]
ClipPut($data) -
In AutoIt ist diese Frage eher akademischer Natur, da man Dateien mit einfachen Filecopy() verschieben kann...
-
Kopiere doch den Pfad der Datei in eine Variable und wenn der Nutzer auf einfügen klickt kopierst du die Datei mit FileCopy().
-
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>
[/autoit]
$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