Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.027 c
1-1160577110
Piero
2006-10-11 18:31
2006.11.19
TBitBtn


1-1159882134
mazur_r
2006-10-03 17:28
2006.11.19
Работа с полями в Word.


11-1139132248
homm
2006-02-05 12:37
2006.11.19
Хранение двоичных данных(файла) в *.dfm


15-1162384104
UMU
2006-11-01 15:28
2006.11.19
Delphi 7 и Turbo Delphi Explorer


2-1162307017
Megabyte
2006-10-31 18:03
2006.11.19
После формирования отчета в Excel висит процесс




   Наверх