Вернуться   HitForum - Форумы Мариупольской Городской Сети > HiTech > Программирование

Программирование Все, что связано с программированием

Ответ
 
Опции темы
Старый 29.09.2006, 00:03   #1
Местный житель
 
Аватар для Adrian
 
Мужчина
Регистрация: 10.12.2005
Адрес: 193.43.254.128/25
Сообщений: 191
Вес репутации: 14 Adrian стоит на развилке

Отправить сообщение для Adrian с помощью ICQ
Указатель Требуется совет: приложение, завершающее процессы.

Напр. чтобы завершить процесс ****.exe - мне надо лезть

Ctrl+Alt+Del>Выбираеш процесс>Завершить процесс>Да.

Можно ли написать приложение в Delphi 7, завершающее другие процессы, например, нажатием кнопки?
Если да, то как?
Подскажите, пожалуйста.
Adrian вне форума   Ответить с цитированием
Старый 29.09.2006, 13:46   #2
Новичок
 
Аватар для ARMAGEDON
 
Регистрация: 11.07.2006
Адрес: Мариуполь - Киев
Возраст: 31
Сообщений: 14
Вес репутации: 0 ARMAGEDON нейтрален(-на)

По умолчанию

Да, естественно можно. Делфи правда тут не совсем катит... С++ для работы с памятью в самый раз. И скорость, и простота в создании как в Делпхи.
__________________
МГЛ - выпуск 2009 :D
ARMAGEDON вне форума   Ответить с цитированием
Старый 29.09.2006, 14:00   #3
Эксперт
 
Аватар для WanderingSoul
 
Регистрация: 26.10.2004
Возраст: 37
Сообщений: 1,625
Вес репутации: 0 WanderingSoul нейтрален(-на)


По умолчанию

Цитата:
Сообщение от ARMAGEDON
Делфи правда тут не совсем катит... С++ для работы с памятью в самый раз
Причем здесь память, там API функции дергать надо, а вот какие функции другой уже вопрос
WanderingSoul вне форума   Ответить с цитированием
Старый 29.09.2006, 14:07   #4
Бывалый
 
Аватар для wut
 
Регистрация: 16.01.2006
Возраст: 33
Сообщений: 374
Вес репутации: 0 wut нейтрален(-на)


Отправить сообщение для wut с помощью ICQ
По умолчанию

Честно говоря в Windows точно не знаю, но POSIX регламентирует kill(идентификатор процесса). В windows должно быть что-то подобное, а можжет и тоже самое
wut вне форума   Ответить с цитированием
Старый 29.09.2006, 15:45   #5
Hadronyche infensa
 
Аватар для Tarantul
 
Мужчина
Регистрация: 31.10.2004
Адрес: Киев
Сообщений: 1,732
Вес репутации: 30 Tarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордиться


Отправить сообщение для Tarantul с помощью ICQ
По умолчанию

Цитата:
Сообщение от Adrian
Напр. чтобы завершить процесс ****.exe - мне надо лезть

Ctrl+Alt+Del>Выбираеш процесс>Завершить процесс>Да.

Можно ли написать приложение в Delphi 7, завершающее другие процессы, например, нажатием кнопки?
Если да, то как?
Подскажите, пожалуйста.

TerminateProcess(Handle) - завершает процесс по его хендлу

OpenProcess($0001, FALSE, ProcessId) - узнать хендл процесса по его ID

GetWindowThreadProcessID(TheWindow, @ProcessID) - узнать процесс ID по ссылке на окно

FindWindow(Classname : string; WindowTitle : string) - получить ссылку на окно по имени класса и заголовку окна.
Tarantul вне форума   Ответить с цитированием
Старый 29.09.2006, 20:02   #6
Прижившийся
 
Аватар для CTEPX
 
Регистрация: 07.06.2006
Сообщений: 51
Вес репутации: 0 CTEPX нейтрален(-на)

По умолчанию

Тарантул то, что ты ему написал навряд ли ему поможет. Помоему в Делфи не предусмотрен прямой вызов API-функций(а также передача им параметров), там это кажется делается посредством промежуточных библиотек VCL. Т.е. вызывается сначала родная делфовая ф-я а та в свою очередь обращается к API-функциям системы.
Если есть возможность лучше пошукай в Сети там готовых решений для Делфи море, а уже по исходнику сам разберешся, что к чему!
__________________

CTEPX вне форума   Ответить с цитированием
Старый 29.09.2006, 21:00   #7
Эксперт
 
Аватар для WanderingSoul
 
Регистрация: 26.10.2004
Возраст: 37
Сообщений: 1,625
Вес репутации: 0 WanderingSoul нейтрален(-на)


По умолчанию

CTEPX, вообще-то можно, просто надо включить в uses модули где эти функции объявлены
WanderingSoul вне форума   Ответить с цитированием
Старый 29.09.2006, 21:09   #8
Hadronyche infensa
 
Аватар для Tarantul
 
Мужчина
Регистрация: 31.10.2004
Адрес: Киев
Сообщений: 1,732
Вес репутации: 30 Tarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордитьсяTarantul , можно гордиться


Отправить сообщение для Tarantul с помощью ICQ
По умолчанию

Цитата:
Сообщение от CTEPX
Помоему в Делфи не предусмотрен прямой вызов API-функций(а также передача им параметров), там это кажется делается посредством промежуточных библиотек VCL. Т.е. вызывается сначала родная делфовая ф-я а та в свою очередь обращается к API-функциям системы.
Я в ужасе.......

Открой в любом редакторе windows.pas и почитай внимательно !!!!!
Например:
function TerminateProcess(hProcess: THandle; uExitCode: UINT): BOOL; stdcall;
надеюсь не надо объяснять что такое stdcall ?

А VCL это библиотека ВИЗУАЛЬНЫХ компонентов что явственно следует из ее названия.
Tarantul вне форума   Ответить с цитированием
Старый 29.09.2006, 21:31   #9
Местный житель
 
Аватар для Adrian
 
Мужчина
Регистрация: 10.12.2005
Адрес: 193.43.254.128/25
Сообщений: 191
Вес репутации: 14 Adrian стоит на развилке

Отправить сообщение для Adrian с помощью ICQ
По умолчанию

Цитата:
Сообщение от Tarantul
TerminateProcess(Handle) - завершает процесс по его хендлу

OpenProcess($0001, FALSE, ProcessId) - узнать хендл процесса по его ID

GetWindowThreadProcessID(TheWindow, @ProcessID) - узнать процесс ID по ссылке на окно

FindWindow(Classname : string; WindowTitle : string) - получить ссылку на окно по имени класса и заголовку окна.
Можете пожалуйста привести пример: завершение процесса IEXPLORE.exe по нажатию кнопки Button1 ?
Adrian вне форума   Ответить с цитированием
Старый 29.09.2006, 21:46   #10
Эксперт
 
Аватар для WanderingSoul
 
Регистрация: 26.10.2004
Возраст: 37
Сообщений: 1,625
Вес репутации: 0 WanderingSoul нейтрален(-на)


По умолчанию

Adrian
Советую найти FAQ по Delphi - Delphi Russian Knowledge Base (DRKB) или могу скинуть.

Пример оттуда:
Код:
Эта небольшая функция закрывает приложения, соответствующие заданному имени .exe. 
  Пример: KillTask('notepad.exe'); 
                  KillTask('iexplore.exe'); } 

uses 
  Tlhelp32, Windows, SysUtils; 

function KillTask(ExeFileName: string): integer; 
const 
  PROCESS_TERMINATE=$0001; 
var 
  ContinueLoop: BOOL; 
  FSnapshotHandle: THandle; 
  FProcessEntry32: TProcessEntry32; 
begin 
  result := 0; 

  FSnapshotHandle := CreateToolhelp32Snapshot 
                     (TH32CS_SNAPPROCESS, 0); 
  FProcessEntry32.dwSize := Sizeof(FProcessEntry32); 
  ContinueLoop := Process32First(FSnapshotHandle, 
                                 FProcessEntry32); 

  while integer(ContinueLoop) <> 0 do 
  begin 
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = 
         UpperCase(ExeFileName)) 
     or (UpperCase(FProcessEntry32.szExeFile) = 
         UpperCase(ExeFileName))) then 
      Result := Integer(TerminateProcess(OpenProcess( 
                        PROCESS_TERMINATE, BOOL(0), 
                        FProcessEntry32.th32ProcessID), 0)); 
    ContinueLoop := Process32Next(FSnapshotHandle, 
                                  FProcessEntry32); 
  end; 

  CloseHandle(FSnapshotHandle); 
end;
WanderingSoul вне форума   Ответить с цитированием
Старый 29.09.2006, 22:27   #11
Местный житель
 
Аватар для Adrian
 
Мужчина
Регистрация: 10.12.2005
Адрес: 193.43.254.128/25
Сообщений: 191
Вес репутации: 14 Adrian стоит на развилке

Отправить сообщение для Adrian с помощью ICQ
По умолчанию

Цитата:
Сообщение от WanderingSoul
Советую найти FAQ по Delphi - Delphi Russian Knowledge Base (DRKB) или могу скинуть.
Скинеш на ftp://freeone.hl.net.ua, пожалуйста?

P.S: Заработало, спасибо за помощь.
Adrian вне форума   Ответить с цитированием
Старый 29.09.2006, 22:41   #12
Эксперт
 
Аватар для WanderingSoul
 
Регистрация: 26.10.2004
Возраст: 37
Сообщений: 1,625
Вес репутации: 0 WanderingSoul нейтрален(-на)


По умолчанию

Цитата:
Сообщение от Adrian
Скинеш на ftp://freeone.hl.net.ua, пожалуйста?
На freeone не смог прорваться (too many users), кинул сюда - ftp://halfer.hitline.net.ua/Upload/drkb23.chm
WanderingSoul вне форума   Ответить с цитированием
Старый 30.09.2006, 22:16   #13
Гуру
 
Аватар для max92
 
Мужчина
Регистрация: 01.01.2006
Адрес: на планете "Земля"
Сообщений: 2,891
Вес репутации: 25 max92 , можно гордитьсяmax92 , можно гордитьсяmax92 , можно гордитьсяmax92 , можно гордитьсяmax92 , можно гордитьсяmax92 , можно гордитьсяmax92 , можно гордитьсяmax92 , можно гордиться


Отправить сообщение для max92 с помощью ICQ Отправить сообщение для max92 с помощью Skype™
По умолчанию

Цитата:
Сообщение от Adrian
Напр. чтобы завершить процесс ****.exe - мне надо лезть

Ctrl+Alt+Del>Выбираеш процесс>Завершить процесс>Да.

Можно ли написать приложение в Delphi 7, завершающее другие процессы, например, нажатием кнопки?
Если да, то как?
Подскажите, пожалуйста.
а не проще alt + F4 ???
__________________
*[Только зарегистрированные пользователи могут видеть ссылки. Регистрация!]
max92 вне форума   Ответить с цитированием
Ответ

  HitForum - Форумы Мариупольской Городской Сети > HiTech > Программирование


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

© 2003 - HitLine.
Часовой пояс GMT +3, время: 05:10.