С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rambayke
2 / 2 / 0
Регистрация: 31.07.2012
Сообщений: 71
#1

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

20.12.2012, 11:10. Просмотров 300. Ответов 0
Метки нет (Все метки)

всем привет!
пожалуйста, скажите как можно получить хэндл при создании процесса через 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);
 }
в обеих случаях выводит не верно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2012, 11:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как получить хэндл при создании процесса? (C++):

Есть процесс A и дочерний процесс B, который находит хэндл родительского процесса A. И этот хэндл в разных случаях РАЗНЫЙ! Почему? - C++
Друзья! Вот код A.exe, суть которого просто стать родительским для B.exe и висеть в системе. #include <stdio.h> #include <windows.h>...

Как получить код завершения процесса - C++
Привет форумчане. Подскажите если кто знает. Запускаю через CreateProcess монтирование образа при помощи TrueCrypt. Если скажем...

Как работает компилятор при создании объекта - C++
Таки думал разобрался как работает конструктор копирования, а выходит, что нет. Вопрост состоит в следующем. Имеем код представляющий...

Как указать размер элементов вектора при создании ? - C++
Доброго времени суток! Прошу помощи в следующем: Дано задание - ввести в строку с клавиатуры несколько слов (раздельных пробелом) и...

Как заменить шаблон при создании консольного проекта в VS 2013? - C++
// 2-1 PY.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" int _tmain(int argc, _TCHAR* argv) ...

Как сделать чтобы при создании массива его имя менялось? - C++
Вот есть такая функция: void UniqueCollection (int x1, int y1, int x2, int y2) { int Values = 4; int *Collection; Collection =...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2012, 11:10
Привет! Вот еще темы с ответами:

Как выделить память под динамические переменные при создании класса? - C++
В прошлой теме ответ получил, но не до конца. Вопрос такой, как выделить память под динамические переменные? Вот часть кода ...

Как настроить изначальный код, который открывается при создании нового проекта - C++
Объясните пожалуйста, как в Visual C++ 2008 Express настроить изначальный шаблон кода при создании нового проекта. Например, чтоб каждый...

Получить имя процесса. - C++
Помогите разобраться с GetProcessName(). в MSDN нашел, но ничего не понял :wall:.... объясните, пожалуйста, где объявлена, что надо...

Получить список модулей указанного процесса - C++
Доброго времени суток. Возникла проблема с получением списка модулей процесса. Пытаюсь получить так: BOOL ListProcessModules(DWORD...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.