Einzelnen Beitrag anzeigen

BurtaN

Registriert seit: 25. Jan 2008
35 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Datei mit laufendem Programm öffnen!

  Alt 25. Jan 2008, 20:37
Delphi-Quellcode:
function DropFilesOnWnd(AWnd: HWND; AFiles: String): Boolean; overload;
var LInfo: PDragInfoA;
    LRes: Boolean;
    LHGlobal: Cardinal;
begin
  LRes := False;
  if copy(AFiles, length(AFiles), 1) <> #0 then
    AFiles := AFiles + #0;
  LHGlobal := GlobalAlloc(GMEM_SHARE or GMEM_MOVEABLE or GMEM_ZEROINIT, SizeOf(TDragInfoA) + length(AFiles) + 1);
  if LHGlobal <> 0 then
  begin
    LInfo := GlobalLock(LHGlobal);
    if LInfo <> nil then
    begin
      LInfo.uSize := SizeOf(TDragInfoA);
      Move(AFiles[1], PChar(Cardinal(LInfo) + LInfo.uSize)^, length(AFiles));
      GlobalUnlock(LHGlobal);
      LRes := PostMessage(AWnd, WM_DROPFILES, LHGlobal, 0);
    end;
    if not(LRes) then
      GlobalFree(LHGlobal);
  end;
  result := LRes;
end;

function DropFilesOnWnd(AWnd: HWnd; AFiles: TStringlist): Boolean; overload;
begin
  result := DropFilesOnWnd(AWnd, StringReplace(AFiles.Text, #13#10, #0, [rfReplaceAll]));
end;
Habe den Code benutzt aus dem verlinkten Thread. Er Funktioniert, wenn ich z.B. Wordpad als Ziel nehme. Das Ergebnis ist das gleiche als wenn ich die Datei mit dem Wordpad öffne, es funktioniert also. Falls ich es jedoch an mein Programm sende, passiert gar nichts. Ebenso passiert nichts, wenn ich eine Musik-File an Windows Media Player sende. Liegt das dann an der Drag and Drop Implentierung vom jeweiligen Programm? Was wiederrum bedeuten würde, dass ich solange Drag and Drop Möglichkeiten testen müsste, bis ich die passende zur Implentierung gefunden habe?

Danke für die guten Tipps bis jetzt!
  Mit Zitat antworten Zitat