让主要的可执行文件启动代码查找您选择的命令行参数。FindCmdLineSwitch()
您可以为此目的使用 RTL 的功能。如果该参数存在,则正常运行游戏。否则,使用 Win32CreateProcess()
函数运行启动器可执行文件,然后自行退出。当启动器准备就绪时,它可以使用该CreateProcess()
函数运行主可执行文件,将命令行参数传递给它来运行游戏。
例如:
主要.dpr:
Var
SI: TStrartupInfo;
PI: TProcessInformation;
Begin
If not FindCmdLineSwitch('RunGameNow') then
Begin
ZeroMemory(@SI, SizeOf(SI));
SI.cbSize := SizeOf(SI);
...
If CreateProcess(nil, 'launcher.exe', nil, nil, False, 0, nil, nil, @SI, @PI) then
Begin
CloseHandle(PI.hThread);
CloseHandle(PI.hProcess);
End;
Exit;
End;
... Run game normally...
End.
启动器.dpr:
Begin
...
CreateProcess(nil, 'main.exe /RunGameNow', nil, nil, False, 0, nil, nil, @SI, @PI)
...
End.