Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: WinAPI и системное программирование > TerminateProcess |
Автор: Гость_Over G 18.8.2003, 16:55 |
Как закрыть процесс нужного файла ? Если можно то функцию с описаниями, ато я в делфи полный профан. |
Автор: p0s0l 18.8.2003, 17:05 | ||
Не проверял, но вот из FAQ:
|
Автор: 0FF 18.8.2003, 21:19 |
Знакомая трабла, сам с такой сталкнулся, ришение так и не нашел. 2 p0s0l Этот пример действует только для Win9x тк там szFileName Возвращает путь к файлу + его имя. И соответвенно можно написать killtask('c:\Folder\File.exe'); А в WinXP (и наверное в других виндах семейства Nt) такая тема не катит тк, в WinXP szFileName - это не полный путь к файлу + его имя, а только его имя. поэтому функция killtask('c:\Folder\File.exe'); не даст вообще ни какого результата. только так killtask('File.exe'); но таким макаром будут убиты все одоимённые файлы. А надо убить только один. |
Автор: p0s0l 18.8.2003, 22:23 | ||
Теперь можно и с путем указывать и без пути:
Проверял в Xp - убивает winamp.exe как с путем так и без пути... |
Автор: 0FF 19.8.2003, 19:45 |
Первый break не нужен. |
Автор: p0s0l 19.8.2003, 21:11 | ||
Если найден модуль с нужным именем, то зачем искать дальше ? |
Автор: Fantasist 19.8.2003, 21:21 | ||
Наверно имелось в виду:
и break не нужен. |
Автор: Fantasist 19.8.2003, 21:54 | ||||
Правда тогда и второй break не нужен. Вместо:
ставим:
|
Автор: p0s0l 20.8.2003, 01:20 |
Ладно, ладно... Только такое ощущение, что писал не в форум, а в какой-то раздел "этюды"... Сразу укорачивать и упрощать начали... ![]() |
Автор: p0s0l 20.8.2003, 01:39 | ||||||
И если уж дело дошло до этого, то мой вариант (с break) и быстрее, и меньше памяти занимает: ![]() (это то что компилит Delphi 7.0) Вариант с break:
А если делать без break, длина +5 байт:
И если уж решили делать без break'а, то until надо делать таким: until Result or (not Module32Next...); Таким образом длина -2 байта:
![]() |