Форум: "Основная";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизОтловить в процессах ДОС-приложение Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.057 c