Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отловить в процессах ДОС-приложение [D7, WinXP]


kyn66 ©   (2006-10-02 19:19:00) 

Каким образом из своей программы САБЖ и завершить его или хотя-бы убедиться, что оно действительно запущено.


kyn66   (2006-10-06 09:52:00) [1]

Но теперь возникла другая проблема. Ищу в сформированом ListBox нужную программу по :

 ListBox1.Perform(LB_SELECTSTRING,-1,longint(Pchar('текст поиска')));


нр непонятно почему поиск выполняется не на точное совпадение. Достаточно ввести первые буквы и он позиционируется на первое найденное слово. А мне нужно чтобы точное наименование находил.


kyn66   (2006-10-06 09:49:00) [2]

Вот нашел выход, то что нужно, показывает как в диспетчере по именам:

procedure TForm1.Button1Click(Sender: TObject);
var
 Wnd: hWnd;
 buff: array[0..127] of Char;
begin
 ListBox1.Clear;
 Wnd := GetWindow(Handle, gw_HWndFirst);
 while Wnd <> 0 do begin {Не показываем:}
   if (Wnd <> Application.Handle) and {-Собственное окно}
     IsWindowVisible(Wnd) and {-Невидимые окна}
     (GetWindow(Wnd, gw_Owner) = 0) and {-Дочернии окна}
     (GetWindowText(Wnd, buff, sizeof(buff)) <> 0) {-Окна без заголовков}
     then begin
     GetWindowText(Wnd, buff, sizeof(buff));
     ListBox1.Items.Add(StrPas(buff));
   end;
   Wnd := GetWindow(Wnd, gw_hWndNext);
 end;
 ListBox1.ItemIndex := 0;
end;


Наиль   (2006-10-06 07:54:00) [3]


> С чего бы MZ exe не открылся? Эт тебе не PE...

Давненько я не пользовался ДОС из под Windows, а то не давал бы таких дурацких советов.


Чапаев   (2006-10-05 19:01:00) [4]

> [5] Наиль ©   (05.10.06 10:33)

С чего бы MZ exe не открылся? Эт тебе не PE...


kyn66   (2006-10-05 15:04:00) [5]

C применением ..., пардонс... 8-(


BiN   (2006-10-05 14:16:00) [6]

проблемы с объявлением?

type
TaskEnumProcEx = function (threadID : DWORD; hMod16 : WORD; hTask16 : WORD; modName : PChar; fileName : PChar; param : DWORD) : BOOL; stdcall;

function VDMEnumTaskWOWEx (pid : DWORD; callback : TaskEnumProcEx; param : DWORD) : Integer; stdcall; external 'vdmdbg.dll';


kyn66   (2006-10-05 14:08:00) [7]

Сенькс, в принципе то что нужно, однако нашел пример, но на СИ 8-(


BiN   (2006-10-05 14:06:00) [8]


> kyn66 ©   (05.10.06 13:58) [8]
>
> >> BiN
> А можно поподробнее, что это такое?


а гугль ее знает...


kyn66   (2006-10-05 13:58:00) [9]

>> BiN
А можно поподробнее, что это такое?


BiN   (2006-10-05 13:42:00) [10]

VDMEnumTaskWOWEx


kyn66   (2006-10-05 11:43:00) [11]

Но как правило, все они запускаются батником. А вот к примеру по имени окна как-нить мона отловить?


Наиль   (2006-10-05 10:33:00) [12]


> запущена программа или нет.

Как вариант (плохой вариант), попробывать открыть файл на чтение.
Запущеный не откроется.


kyn66   (2006-10-05 09:53:00) [13]

ну да, есть такое дело. Мне к примеру нужно знать, запущена программа или нет.


Ketmar   (2006-10-03 03:07:00) [14]

ntvdm driver?


Джо   (2006-10-03 02:14:00) [15]

> какого именно - фиг знает, потестируй...

ntvdm?


jack128   (2006-10-02 23:28:00) [16]

afaik все dos приложения могут выполнятся в рамках одного процесса (типа виртуальной машины). какого именно - фиг знает, потестируй...


Наверх

Титульная страница Поиск, карта сайта Написать письмо