|
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
|
|
Запуск процесса и последующее управление им27.06.2008, 15:31. Показов 5312. Ответов 23
Метки нет (Все метки)
Добрый день!
Возникла проблема.. реализую лаунчер для онлайн игры. Задача: надо запустить процесс main.exe и в последующем иметь возможность управлять им (приводить его в полноэкранный режим, оконный, и сворачивание). Прошу помочь в решении данной задачи. P.S.: я пробовал два метода - CreateProcess() и WinExec() В принципе обе они работают, но дело в том, что я не совсем понимаю параметров данных функций (брал все поумолчанию)
0
|
|
| 27.06.2008, 15:31 | |
|
Ответы с готовыми решениями:
23
Сохранение и последующее восстановление процесса Порождение нового процесса и запуск программы в рамках порожденного процесса |
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 27.06.2008, 15:44 | |
|
Добрый день,
Ну для управления уже работающего приложения не этих функций параметры Вам нужны. Можно использовать сообщения windows. Хотя...пожалуй, удобнее SetWindowLong. Первый параметр - хэндл окна, второй - то, что хотим поменять, третий - на что мы это меняем. Также смотрите в сторону SetWindowPlacement, SetWindowPos. Все они облегчат Вам жизнь.
0
|
|
|
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
|
|
| 27.06.2008, 17:00 | |
|
А мне кажется изящнее будет поставить на приложения компоненты DDEClient и DDEServer и слать сообщения от клиентского приложения к серверному (не важно кто из них кто - сообщения отправляются в оба конца). Причем сообщения - не те что в WinAPI сложные, а простой текест, который можно разбирать на составляющие и т.д.
DDE рулит, хоть и старая технология... Устанавливаешь связь между приложениями и шлешь сообщения (передача информации) или макросы (данных не передается; приказ на отработку каких-то действия), а уже твоя игруха пусть на эти сообщения реагирует как хочет. К тому же, когда ты будешь создавать связь, компонент сам игру запустит.. Я тут про DDE где-то писал недавно.. Почитай книгу "Архангельский.. BCB6" Если что - я тебе процитирую койче вкладышем.. Мне кажется - это самое то... Изучать там не много - я сам вчера вечером между-делами почитал.. скоро буду пользовать ![]() Добавлено через 1 минуту Если, конечно, нет возможности изменить игруху, тогда пользуй виндовые сообщения (WinAPI)
0
|
|
|
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
|
|||||||
| 28.06.2008, 04:08 [ТС] | |||||||
|
...к тому же ее в хелпе то и нету)))) Если что не так, не судите строго.. с winapi я не работал ни разу.. Добавлено через 8 часов 4 минуты Так, ладно, с горем пополам разобрался со всей этой мутотенью... остался последний вопрос по данной теме, вот функция SetWindowPlacement(); у нее два параметра :
вот второй вопрос.. адресс структуры с инфой о позиции окна.. как ее создавать как она должна выглядеть... в общем совсем не понимаю этот параметр.. Кто поможет объяснить мне вот эту штуку))
0
|
|||||||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||||||
| 28.06.2008, 14:40 | ||||||
|
http://msdn.microsoft.com/en-u... S.85).aspx
Создавать абсолютно также как любую другую стркутуру в языке С++. Способов много ![]()
0
|
||||||
|
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
|
|||||||||||
| 28.06.2008, 16:08 [ТС] | |||||||||||
|
Все вроде бы замечательно, но вот напасть, при попытке откомпилиться выдает следующую ошибку...
0
|
|||||||||||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 28.06.2008, 16:19 | |
|
При попытке компиляции такой ошибки быть не может, так как, это ошибка линкера, а не компилятора.
В принципе, странно, должно нормально все быть. Как с остальными винапи? В опциях директории к lib правильно прописаны?
0
|
|
|
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
|
|
| 28.06.2008, 16:31 [ТС] | |
|
Да, вроде все правильно прописано...
Ошибка уходит если закоментирую последнюю строку SetWindowPlacement(hWnd2, &w);
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 28.06.2008, 16:39 | |
|
Хм...тогда выложите здесь текст Вашего Makefile'а.
0
|
|
|
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
|
|
| 28.06.2008, 16:41 [ТС] | |
|
Вот прикрепил мак файл..
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 28.06.2008, 16:58 | |
|
Да, вроде, все ок...
не знаю. попробуй среду переустановить. ради эксперимента отбилдить с RTL динамической, и пакетами. P. S. уже соскучился по gcc
0
|
|
|
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
|
|||||||
| 28.06.2008, 17:31 [ТС] | |||||||
|
Попробовал эту программу скомпилить на другой машине - тольку ноль.. вот наше в сети вот такое описание данной проблемы...
Дальше автор данного решения предлагает выполнить следующие пункты... но пункты 6 и 7 у меня не получаются, либо я не до конца понимаю чего хочет автор, либо что-то еще.. Проблема остается открытой :huh: Добавлено через 3 минуты Вот что мне выдает командная строка:
0
|
|||||||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 28.06.2008, 17:35 | |
|
Он тебя просит запустить тулзу из папки bin твоего билдера с параметрами. С созданным файлом запустить implib (из того же bin) и линковать.
По поводу ошибки: попробуй прописать полный путь к user32.dll.
0
|
|
|
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
|
||||||
| 28.06.2008, 17:49 [ТС] | ||||||
|
попробовал ради эксперимента отбилдить с RTL динамической, и пакетами. - результат тот же самый...
По поводу запуска тулзы с параметрами, он мне выдает ошибку о том что dll моя не правильная или что то вроде того... Логи cmd я привел выше.. Добавлено через 1 минуту По поводу первого сообщения dll - я ее потом переместил в bin папку, он ее нашел, тольк сделать ничего не может с ней.. Добавлено через 9 минут вот я прописал полный путь к библиотеке которая лежит вместе с проектом..
0
|
||||||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 28.06.2008, 17:51 | |
|
Да, у меня аналогично...
0
|
|
|
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
|
|
| 28.06.2008, 17:55 [ТС] | |
|
У тебя функция SetWindowPlacement(); нормально пашет? без ошибок линкера?
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 28.06.2008, 17:56 | |
|
У меня все нормально пашет
как же я тебе пример-то написал.Могу предложить быстрый выход: экспортируй функцию ручками из user32.dll.
0
|
|
|
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
|
|
| 28.06.2008, 17:57 [ТС] | |
|
Ладно, ща тогда переустановлю вилдер... может поможет...
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||
| 28.06.2008, 18:02 | ||
|
А почему он у тебя void * он пишет? Там где должен быть хэндл, почему void*?
0
|
||
|
20 / 19 / 2
Регистрация: 27.06.2008
Сообщений: 105
|
||||||
| 28.06.2008, 18:05 [ТС] | ||||||
|
Я не знаю, вот вся функция которая касается этого обработчика...
и почему он в обработчике пишет void я не знаю...
0
|
||||||
| 28.06.2008, 18:05 | |
|
Помогаю со студенческими работами здесь
20
Запуск нового процесса в контейнере существующего процесса Запуск процесса процесса, приложения на стороне клиента Управление памятью процесса
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|