Nicht ganz.
Delphi-Quellcode:
if Window=0 then begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end else begin
//////////////////////////////////////////////////////////////////////////
FillChar(CopyDataStruct, Sizeof(CopyDataStruct), 0);
for i := 1 to ParamCount do begin
Arg := ParamStr(i);
CopyDataStruct.cbData := (Length(Arg)+1)*SizeOf(Char);
CopyDataStruct.lpData := PChar(Arg);
SendMessage(Window, WM_COPYDATA, 0, NativeInt(@CopyDataStruct));
end;
SetForegroundWindow(Window);
end;
Da wo die Kommentarzeile ist. Dort prüfe ich alle übergebenen Parameter auf Gültigkeit.
Wenn mein Programm den Parameter close unterstützt dann prüfe ich hier, ob close in der Übergabe drin ist. Wenn nicht, wird dieser fehlerhafte Parameter garnicht erst ans Hauptprogramm weitergegeben.