![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отловить в процессах ДОС-приложение [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 приложения могут выполнятся в рамках одного процесса (типа виртуальной машины). какого именно - фиг знает, потестируй...