目前,我使用以下函數來使用默認編輯器打開文件,並確保我的應用程序等待直到用戶關閉編輯器窗口。如何使用指定的編輯器編輯文件?
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
您的代碼有資源泄漏。請記住隨後關閉進程句柄。 –