Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление/закрытие процесса 
:(
    Опции темы
Djaconda
Дата 13.6.2008, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 2.9.2007
Где: Краматорск

Репутация: нет
Всего: нет



запускаю ShellExecute(0,nil,"game.exe",nil,nil,SW_SHOWNORMAL);
а как его потом удалить из памяти.
PM MAIL ICQ   Вверх
Данкинг
Дата 13.6.2008, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Цитата(Djaconda @  13.6.2008,  01:47 Найти цитируемый пост)
а как его потом удалить из памяти. 

Это вопрос, как я понимаю?
Поюзать ДРКБ или же поиск, обсуждалось недавно даже:
тык


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Rennigth
Дата 15.6.2008, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



Лучше создавать процесс через CreateProcess, а потом зная хендл открытого процесса закрывать его. Гуманнее и надежнее как-то smile

Это сообщение отредактировал(а) Rennigth - 15.6.2008, 00:39


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
MetalFan
Дата 15.6.2008, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



имхо закрывать процесс "снаружи" (типа TerminateProcess) без его ведома ниразу не гуманно.


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
skorpik
Дата 17.6.2008, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 10.1.2008

Репутация: нет
Всего: нет



Цитата(Djaconda @ 13.6.2008,  00:47)
запускаю ShellExecute(0,nil,"game.exe",nil,nil,SW_SHOWNORMAL);
а как его потом удалить из памяти.

Хочу запустить в delphi bat-ник, который разархивирует порядка 50 файлов, а потом после того, как разархивируются все файлы, продолжить работать в программе. ТАк вот: не успевает bat-ник ве фйлы разархивировать, и поэтому в нужной директории не хватает файлов. Как быть? пробовал sleep, но на более медленных машинах не спасает и это. Как быть? Кто знает?
PM MAIL   Вверх
Rennigth
Дата 17.6.2008, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



skorpik, CreateProcess + WaitForSingle(Multiple)Object. За подробностями в faq или поиск.


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Akella
Дата 23.6.2008, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



Код

function TfmMain.ExecAndWait(const FileName, Params: ShortString; ArcDir:string;
                               const WinState: Word): boolean; export;
var
  StartInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
  CmdLine: ShortString;
begin
  { Помещаем имя файла между кавычками, с соблюдением всех пробелов в именах Win9x }
  CmdLine := '"' + Filename + '" ' + Params;
  FillChar(StartInfo, SizeOf(StartInfo), #0);
  with StartInfo do begin
    cb := SizeOf(StartInfo);
    dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
    wShowWindow := WinState;
  end;//with
  try
    Result := CreateProcess(nil, PChar( String( CmdLine ) ), nil, nil, false,
                            CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil,
                            PChar(ArcDir),StartInfo,ProcInfo);
  except
    result := false;
  end;
  { Ожидаем завершения приложения }
  if Result then  begin
    WaitForSingleObject(ProcInfo.hProcess, INFINITE);
    { Free the Handles }
    CloseHandle(ProcInfo.hProcess);
    CloseHandle(ProcInfo.hThread);
  end;//if Result then  begin
end;



Код

                ExecAndWait(fmMain.sWinrar,
                                  'a -df -ep $'+fmMain.sFilialName+'_'+FormatDateTime('YYYYMMDD_HHNNSS_zzz',now)+' @'+fmMain.GetSystemPath(WinTemp)+'ToSend.List',
                                  fmMain.sOutFolder,
                                  0);



Код

       ExecAndWait(fmMain.sWinrar,
                          'M -ep -ed "'+sArcName+ '" "'+Dir+SearchRec.name+'"', sOutPhotoFolder,
                          0);

PM MAIL   Вверх
MetalFan
Дата 23.6.2008, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



вот мне интересно, на кой Х плодить в ответах код из факов?! кстати местами не совсем корректный или просто бессмысленный...


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Akella
Дата 25.6.2008, 07:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



Цитата(MetalFan @  23.6.2008,  11:37 Найти цитируемый пост)
кстати местами не совсем корректный или просто бессмысленный... 

у мну или в факах?
Подскажи, пожалуйста, что не так? По крайней мере этот код у мну работает давно и без глюков.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.