Показать сообщение отдельно
  #10  
Старый 13.07.2012, 08:51
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

используй 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 вызывает утечку.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием