Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.19;
Скачать: CL | DM;

Вниз

Отловить в процессах ДОС-приложение   Найти похожие ветки 

 
kyn66 ©   (2006-10-02 19:19) [0]

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


 
jack128 ©   (2006-10-02 23:28) [1]

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


 
Джо ©   (2006-10-03 02:14) [2]

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

ntvdm?


 
Ketmar ©   (2006-10-03 03:07) [3]

ntvdm driver?


 
kyn66 ©   (2006-10-05 09:53) [4]

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


 
Наиль ©   (2006-10-05 10:33) [5]


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

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


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

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


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

VDMEnumTaskWOWEx


 
kyn66 ©   (2006-10-05 13:58) [8]

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


 
BiN ©   (2006-10-05 14:06) [9]


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


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


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

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


 
BiN ©   (2006-10-05 14:16) [11]

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

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 15:04) [12]

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


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

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

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


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


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

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


 
kyn66 ©   (2006-10-06 09:49) [15]

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

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;


 
kyn66 ©   (2006-10-06 09:52) [16]

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

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


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



Страницы: 1 вся ветка

Текущий архив: 2006.11.19;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.091 c
15-1161880772
KilkennyCat
2006-10-26 20:39
2006.11.19
Объявление о работе. Петербург.


15-1162303585
Crazybeaver
2006-10-31 17:06
2006.11.19
Чудеса на виражах. Каким образом выполнена эта технология?


2-1162736309
Student2007
2006-11-05 17:18
2006.11.19
Узнать цвет PaintBox по заданным координатам...


2-1162299656
#0FFFF
2006-10-31 16:00
2006.11.19
Значок в компоненте


15-1162236939
Gero
2006-10-30 22:35
2006.11.19
Поставил себе Windows Vista