Форум программистов, компьютерный форум CyberForum.ru

Как получить хэндл при создании процесса? - C++

Восстановить пароль Регистрация
 
rambayke
2 / 2 / 0
Регистрация: 31.07.2012
Сообщений: 71
20.12.2012, 11:10     Как получить хэндл при создании процесса? #1
всем привет!
пожалуйста, скажите как можно получить хэндл при создании процесса через CreateProces или ShellExecuteEx. FindWindow бесполезен, так как открывается несколько приложений с одинаковыми классами, а название заголовка не известно.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    SHELLEXECUTEINFO sei = { 0 };
    sei.cbSize = sizeof(SHELLEXECUTEINFO);
    sei.fMask = SEE_MASK_NOCLOSEPROCESS;
    sei.hwnd = NULL;
    sei.lpVerb = "Open";
    sei.lpFile = "C:\\mtktool1\\MtkTool.exe";
    sei.lpParameters = "C:\\mtktool1\\MtkTool.ini";
    sei.lpDirectory = NULL;
    sei.nShow = SW_SHOW;
    sei.hInstApp = NULL;
 
    if(ShellExecuteEx(&sei) )
{
    WaitForInputIdle(sei.hProcess, INFINITE );
    ::SetWindowText((HWND)sei.hProcess, "App1");
}
 
    CString str;
    str.Format("h: %X", sei.hProcess); AfxMessageBox(str);
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        STARTUPINFO sif;
        ZeroMemory(&sif,sizeof(STARTUPINFO));
        PROCESS_INFORMATION pi;
 
        memset(&sif, 0, sizeof(sif));
        memset(&pi, 0, sizeof(pi));
 
 if (CreateProcess("C:\\mtktool1\\MtkTool.exe",NULL,NULL,NULL,FALSE,NULL,NULL,NULL,&sif,&pi))
 {  
        WaitForSingleObject(pi.hProcess,5000);
        ::SetWindowText((HWND)pi.hProcess, "App1");
 
        CString str;
        str.Format("h: %X",  pi.hProcess);//OpenProcess(NULL,NULL,pi.dwProcessId)
        AfxMessageBox(str);
 }
в обеих случаях выводит не верно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2012, 11:10     Как получить хэндл при создании процесса?
Посмотрите здесь:

Ошибка при создании конструктора C++
C++ Получить имя процесса.
Как сделать чтобы при создании массива его имя менялось? C++
как сделать чтобы дружественная функция классу принимал ааргумент типа "класс" который при создании ничем не инициализирован? C++
C++ Как получить код завершения процесса
Как настроить изначальный код, который открывается при создании нового проекта C++
Получить список модулей указанного процесса C++
C++ Выбивает при создании вектора
Как работает компилятор при создании объекта C++
C++ Как выделить память под динамические переменные при создании класса?
Конструктор при создании через [] C++
C++ Ошибка при создании класса

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 03:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru