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.

