|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Как показать окно процесса |
|
C/C++ - [решено] Как показать окно процесса
|
![]() Пользователь Сообщения: 133 |
Добрый день. Написал сервис, который вызывает внешний процесс. При этом созданный процесс запускается скрытым (наследует какое-то свойство сервиса). Необходимо, показать этот процесс (его окно).
Делаю так: STARTUPINFO si; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = SW_SHOW; ZeroMemory( &m_pi1, sizeof(m_pi1) ); CreateProcess( NULL, wcmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &m_pi1); //... Как я понял, у приложения запускаемого как сервис, есть ряд ограничений. Где бы об этом почитать? |
|
------- Отправлено: 12:28, 12-11-2007 |
![]() Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать Цитата EvgeniyQQQ:
Цитата EvgeniyQQQ:
Цитата EvgeniyQQQ:
|
|||
------- Отправлено: 15:15, 12-11-2007 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Пользователь Сообщения: 133
|
Профиль | Сайт | Отправить PM | Цитировать Цитата DillerInc:
Да. Цитата DillerInc:
Тоесть не отображается окно приложения. Цитата DillerInc:
Можно. Я пробовал. Эффект тот же. |
|||
------- Отправлено: 17:24, 12-11-2007 | #3 |
![]() Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать EvgeniyQQQ
Кстати,а функция CreateProcess точно возвращает единицу,иными словами,процесс создаётся?? Вот меня сейчас немного заинтересовал параметр lpEnviroment этой же функции. Цитата MSDN:
|
|
------- Отправлено: 19:54, 12-11-2007 | #4 |
![]() Пользователь Сообщения: 133
|
Профиль | Сайт | Отправить PM | Цитировать DillerInc,
Цитата DillerInc:
CreateProcess() возвращает 1. |
||
------- Отправлено: 15:46, 13-11-2007 | #5 |
![]() Пользователь Сообщения: 133
|
Профиль | Сайт | Отправить PM | Цитировать DillerInc, спасибо за участие.
Нашёл ответ на просторах интернета. Нужно было указать запускаемому процессу, что его окно принадлежит текущему рабочему столу. STARTUPINFO si; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = SW_SHOW; si.lpDesktop = _T("Winsta0\\default"); //Необходимо добавить вот это параметр !!! ZeroMemory( &m_pi1, sizeof(m_pi1) ); CreateProcess( NULL, wcmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &m_pi1); //... |
------- Отправлено: 16:03, 14-11-2007 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - [решено] Надо показать диалоговое окно с произвольным текстом. | volk1234 | Скриптовые языки администрирования Windows | 10 | 24-01-2010 14:17 | |
Как определить окно, у которого нет Title, Control's и собственного процесса | Baldr_log | AutoIt | 2 | 25-08-2009 18:26 | |
Proxy/NAT - Как показать, что я с Украины | viter_alex | Сетевые технологии | 3 | 11-10-2008 02:30 | |
[решено] Как показать во всей сети папку которую расшарил в AD? | Keo | Microsoft Windows NT/2000/2003 | 5 | 09-11-2006 15:19 | |
Показать окно редактора visual basic | Alexandra | Программирование и базы данных | 2 | 10-09-2004 11:17 |
|