Показать сообщение отдельно
Старый 02.06.2003, 16:19   #23   
Форумец
 
Аватар для Kent
 
Сообщений: 142
Регистрация: 17.12.2002
Возраст: 45

Kent вне форума Не в сети
Павел-Kikoz

Вот, что нашол за выходные.

FindExecutable
(Модуль ShellAPI)

HINSTANCE FindExecutable(
LPCTSTR lpFile,//строка с именем файла документа
LPCTSTR lpDirectory,//строка каталога по умолчанию
LPTSTR lpResult//строка с именем выполняемого файла
)

При успешном завершении возвращает значение > 32. Если меньше, то свидетельствует об ошибке.

Пример
char APchar[254];
FindExecutable("Doc.doc",NULL,APchar);
Label1->Caption=APchar;
Приведёт к тому, что в метку Label1 будет занесено имя приложения, связанного с файлом типа .doc.
Например:
C:\MSOFFICE\WINWORD\WINWORD.EXE


HWND GetNextWindow(hWnd,unsigned int wCmd);
Функция определяет дискриптор следующего или предыдущего окна. Параметр hWnd - дискриптор окна, от которого начинается отсчёт.
Параметр wCmd - определяет направление поиска. Если wCmd = GW_HWNDNEXT, то ищется следующее окно, находящееся ниже. Если wCmd = GW_HWNDPREV,
то ищется предыдущее окно, находящееся выше. Если результат выполнения функции = NULL, то в данном направлении больше окон нет.

Как мы узнаем, что процесс наш - по дискриптору (у тебя будет дискриптор твоего процесса (кстати запускать всёравно через CreatProcess) и дискрипторы запущенных приложений. Дискрипторы хранятся в ОПЕРАТИВКЕ - перебор мгновенный.
  Ответить с цитированием