Einzelnen Beitrag anzeigen

tomkupitz

Registriert seit: 26. Jan 2011
339 Beiträge
 
Delphi 12 Athens
 
#5

AW: Herausfinden ob Explorer eine Datei als Cut oder Copy ins Clipboard gepackt hat

  Alt 26. Mai 2023, 22:04
Hallo,

du kannst mit

Code:
function ShellDoContextMenuVerb(Folder: IShellFolder; Pidl: PItemIDList; Handle: THandle; Verb: string): Boolean;
var CM: IContextMenu;
    ICI: TCmInvokeCommandInfo;

begin
  result:=False;

  if Assigned(Folder) then
  begin
    if (Folder.GetUIObjectOf(Handle, 1, Pidl, IID_IContextMenu, nil, CM) = NOERROR) then
    begin
      ZeroMemory(@ICI, sizeof(ICI));
      ICI.cbSize:=sizeof(TCmInvokeCommandInfo);

      ICI.hwnd:=Handle;
      ICI.fMask:=CMIC_MASK_ASYNCOK;
      ICI.lpVerb:=PAnsiChar(AnsiString(Verb));
      ICI.nShow:=SW_SHOWNORMAL;

      result:=Succeeded(CM.InvokeCommand(ICI));

      CM:=nil;
    end;
  end;
end;
und dem Verb 'PASTE' das Einfügen (autom. Cut oder Copy) auslösen.

Wenn du wissen willst ob Paste überhaupt möglich ist kannst du

Code:
format:=EnumClipboardFormats(0);

while format<>0 do
begin

...

  GetClipboardFormatName(format, formatname, formatsize);

...
         
  if CompareText(formatstring, 'Shell IDList Array')=0 then
    //Paste OK

...

  format:=EnumClipboardFormats(format);
end;
probieren.

Beste Grüße
  Mit Zitat antworten Zitat