目前,我使用以下函数来使用默认编辑器打开文件,并确保我的应用程序等待直到用户关闭编辑器窗口。如何使用指定的编辑器编辑文件?
function EditAndWait(const AFileName : string) : boolean;
var
Info: TShellExecuteInfo;
begin
FillChar(Info, SizeOf(Info), 0);
Info.cbSize := SizeOf(Info);
Info.lpVerb := 'edit';
Info.lpFile := PAnsiChar(AFileName);
Info.nShow := SW_SHOW;
Info.fMask := SEE_MASK_NOCLOSEPROCESS;
Result := ShellExecuteEx(@Info);
if(Result) and (Info.hProcess <> 0) then
begin
WaitForSingleObject(Info.hProcess, Infinite);
CloseHandle(Info.hProcess);
end;
end;
我想写一个类似的函数,它允许指定编辑器可执行文件用于编辑。
function EditAndWait(const AFileName : string; const AEditor : string) : boolean;
begin
//...
end;
使用该编辑器将文件作为参数传递来创建进程。等待它关闭。这两个部分都有很多可以通过搜索找到的例子。 –
看看[CreateProcess](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v = vs.85).aspx)函数。 – Sam
您的代码有资源泄漏。请记住随后关闭进程句柄。 –