Показать сообщение отдельно
  #14  
Старый 13.07.2012, 09:16
lestatgi lestatgi вне форума
Прохожий
 
Регистрация: 07.06.2010
Сообщения: 32
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
используй CreateProcess вместо ShellExecute:
Код:
var
  startupinfo: TStartupInfo;
  processinformation: TProcessInformation;
  ls: TStringList;
begin
  ZeroMemory(@processinformation, SizeOf(TProcessInformation));
  ZeroMemory(@startupinfo, SizeOf(TStartupInfo));
  startupinfo.cb:=SizeOf(TStartupInfo);
  startupinfo.dwFlags:=STARTF_USESHOWWINDOW;
  startupinfo.wShowWindow:=SW_HIDE;
  CreateProcess(nil, 'cmd.exe /c net session >c:\1.txt', nil, nil, False, 0, nil, nil, startupinfo, processinformation);
  WaitForSingleObject(processinformation.hProcess, INFINITE);
  CloseHandle(processinformation.hThread);
  CloseHandle(processinformation.hProcess);
  ls:=TStringList.Create;
  try
    ls.LoadFromFile('c:\1.txt');
    ls.Text:=DosToWin(ls.Text);
    ls.SaveToFile('c:\1.txt');
  finally
    ls.Free;
  end;
end;
ShellExecute вызывает утечку.
спасибо помогло.
Ответить с цитированием