Ich versuche Krampfhaft ein WM_DropFiles an eine andere Anwendung zu schicken. Die message kommt bei dem anderen Programm auch an, allerdings ist dann die Fileliste nil welche ich gesendet hab.
Als Referenzquelltext hab ich
http://groups.google.de/groups?hl=de...gbl%26rnum%3D2
irgendwie schein ich den aber falsch übersetzt zu haben (ich denk der knackpunkt liegt in dem globalLock)
Mein bisheriger Quelltext
Delphi-Quellcode:
var LInfo: PDragInfoA;
LStr: String;
LRes: Integer;
LAlloc: Pointer;
LHGlobal: Cardinal;
begin
LStr := 'F:\';
LHGlobal := GlobalAlloc(GMEM_MOVEABLE, SizeOf(TDragInfoA) + length(LStr) + 2);
LAlloc := GlobalLock(LHGlobal);
//
LInfo := LAlloc;
LInfo.uSize := SizeOf(TDragInfoA);
LInfo.pt := Point(0, 0);
LInfo.fNC := False;
LInfo.grfKeyState := 0;
LInfo.lpFileList := nil;
LInfo.lpFileList := Pointer(Cardinal(LAlloc) + SizeOf(TDragInfoA));
Move(LStr[1], LInfo.lpFileList^, length(LStr));
LInfo.lpFileList[length(LStr)] := #0;
LInfo.lpFileList[length(LStr) + 1] := #0;
//a.lpFileList := Pointer(SizeOf(TDragInfoA));
GlobalUnlock(LHGlobal);
SendMessage(FindWindow(nil, PChar(Edit2.Text)), WM_DROPFILES, LHGlobal, 0);
//GlobalFree(LHGlobal);
GlobalFree ist bewusst auskommentiert um auszuschließen das der Fehler am zu frühen Freigeben des speichers etc. scheitert.