Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

CreateProcess проблема в получении handle [D7, Win2k]


Сергей_И ©   (2004-04-19 10:49:00) 

var
 StartInfo: TStartupInfo;
 ProcInfo: TProcessInformation;
выполняю
  CreateProcessA(nil,pChar(Edit1.text),nil,nil,false,CREATE_DEFAULT_ERROR_MODE or NORMAL_PRIORITY_CLASS,nil,nil,StartInfo,ProcInfo);

в pChar(Edit1.text) - запускаемое приложение
В ProcInfo по идее должны записаться хендлы создаваемого процесса и глобальный идентификатор процесса (ID), и тоже для его первого потока. Так вот ID создаваемого процесса там есть, а вместо хендла процеса другой хендл (панели задач внизу экрана) - почему? - приходится хендл нужного процесса искать с пом. FindWindow


nikkie   (2004-04-19 11:36:00) [1]

ну и здорово. про CreateProcess можешь забыть.
собственно не факт, что и TWebBrowser нужен...


Сергей_И   (2004-04-19 11:25:00) [2]

Да я тут спрашивал уже - нужно программно открывать сайты (несколько) и заполнять интернет формы. Посоветовали
http://www.delphikingdom.ru/mastering/tweb.htmсижу читаю


Digitman   (2004-04-19 11:13:00) [3]

есть.
EnumWindows, например

оно тебе для каких целей понадобилось, окно-то ?


Anatoly Podgoretsky   (2004-04-19 11:12:00) [4]

Нет поскольку у процесса может быть множество окон, начиная с 0


Сергей_И   (2004-04-19 11:09:00) [5]

есть ли тогда какой нибудь способ узнать handle окна (по хэндлу процесса) не используя FindWindow?


Digitman   (2004-04-19 11:02:00) [6]


> приходится хендл нужного процесса искать с пом. FindWindow


хэндл процесса и хэндл окна - две разные разницы
FindWindow ищет хэндл окна, а не хэндл процесса

typedef struct _PROCESS_INFORMATION { // pi  
    HANDLE hProcess; //а здесь - именно хэндл процесса !! только что созданного !! а не хэндл окна !!
   HANDLE hThread;
   DWORD dwProcessId;
   DWORD dwThreadId;
} PROCESS_INFORMATION;


nikkie   (2004-04-19 11:00:00) [7]

>почему?
потому что путаешь хендлы окон и хендлы процессов.


Наверх

Титульная страница Поиск, карта сайта Написать письмо