Cut, Copy und Paste für Dateien &Verzeich. (Soweit Gelöst)
Verfasst: 07.06.2015 02:14
Hallo,
Ich habe in meinen Programm ein Mauspopupmenü erstellt-. Ähnlich dem Explorer. Also Cut,Copy und Paste für Dateien .
Das hatte ich über ShellExecute gelöst. Das funktioniert auch aber nur mit einer Datei.
EDIT: Ich das nun für mich nun soweit gelöst das ich die Dateien aus dem ExplorerListGadget via selbstgebautes popupmenu
ausschneiden kann
Nun hatt ich den Code für Copy und Paste von ts-soft im anderen Forum Entdeckt
http://www.purebasic.fr/english/viewtop ... 12&t=55789
allerdings frage ich mich, da ich auch 'cut' haben will wie ich das verbaue.
einbinde. Ich stehe seit tagen auf dem Schlauch damit.

Ich habe in meinen Programm ein Mauspopupmenü erstellt-. Ähnlich dem Explorer. Also Cut,Copy und Paste für Dateien .
Das hatte ich über ShellExecute gelöst. Das funktioniert auch aber nur mit einer Datei.
EDIT: Ich das nun für mich nun soweit gelöst das ich die Dateien aus dem ExplorerListGadget via selbstgebautes popupmenu
ausschneiden kann

Code: Alles auswählen
Procedure.i ShellExec(lpFilePath$ = "",Verb$ = "",Paramter$ = "", Mask = #Null, ExShow.i = #SW_SHOWNORMAL)
Protected Handle.l, iResult
Define ShExec.SHELLEXECUTEINFO
ShExec\cbSize = SizeOf(SHELLEXECUTEINFO)
ShExec\fMask = Mask
ShExec\hwnd = Handle
ShExec\lpVerb = @Verb$
ShExec\lpFile = @lpFilePath$
ShExec\lpParameters = @Paramter$
;ShExec\lpParameters = @"-admin"
ShExec\lpDirectory = #Null
ShExec\nShow = #SW_SHOWNORMAL
ShExec\hInstApp = #Null
iResult = ShellExecuteEx_(@ShExec.SHELLEXECUTEINFO)
endprocdure
ShellExec(FullPath$+FullName$,"cut","",#SEE_MASK_INVOKEIDLIST,#Null)
http://www.purebasic.fr/english/viewtop ... 12&t=55789
allerdings frage ich mich, da ich auch 'cut' haben will wie ich das verbaue.
Code: Alles auswählen
Delphi
ADropEffectFormat := RegisterClipboardFormat(CFSTR_PREFERREDDROPEFFECT); // CFSTR_PREFERREDDROPEFFECT = 'Preferred DropEffect'
hGlobal := GlobalAlloc(GMEM_SHARE Or GMEM_MOVEABLE Or GMEM_ZEROINIT, SizeOf(dword));
ADropEffect := GlobalLock(hGlobal);
ADropEffect^ := 2; // 2 if cut or 5 if copy
SetClipboardData(ADropEffectFormat, hGlobal);
GlobalUnlock(hGlobal);
CloseClipboard ;
Code: Alles auswählen
oder C++
HGLOBAL RenderPREFEREDDROPEFFECT (DWORD dwFlags)
{
DWORD * pdwFlag;
HGLOBAL hGlobal;
hGlobal = GlobalAlloc(GHND|GMEM_SHARE, sizeof(DWORD));
if(!hGlobal) return hGlobal;
pdwFlag = (DWORD*)GlobalLock(hGlobal);
*pdwFlag = dwFlags;
GlobalUnlock(hGlobal);
return hGlobal;
}
einbinde. Ich stehe seit tagen auf dem Schlauch damit.

