also egal, ob ich createprocess oder shellexecute verwende --> das selbe ergebnis der explorer hängt, so lange mein programm ausgeführt wird.
wenn der folgende code eingefügt wird, dann hängt der explorer, falls ich ihn rausnehm, dann hängt er nicht. er wird ausgeführt sobald der user im kontextmenü meinen eintrag anklickt
Delphi-Quellcode:
window_handle := RunProcess(currentdir + 'Programm.exe');
if window_handle <> 0 then
begin
for i:=0 to files.Count-1 do
begin
GetMem(SendRecord, sizeof(TSendRecord));
try
send_string := files[i];
if i = files.Count-1 then
SendRecord.last_message := true
else
SendRecord.last_message := false;
SendRecord.pfad := send_string;
aCopyData.dwData := 0;
aCopyData.cbData := sizeof(TSendRecord);
aCopyData.lpData := SendRecord;
SendMessage(window_handle, WM_COPYDATA, 0, Longint(@aCopyData));
finally
FreeMem(SendRecord, sizeof(TSendRecord));
end;
end;
end;
alles in einem schwups übergeben mach ich deshalb nicht, weil wenn der user z.b. 100 dateien selektiert, dann glaub ich irgendwie nicht, dass ich das alles als einen parameter an das programm übergeben kann. das macht wahrscheinlich windows nicht mit