|
31 / 27 / 8
Регистрация: 25.05.2015
Сообщений: 113
|
||||||
Запуск Win16 приложения на Windows 7 x8621.03.2019, 16:08. Показов 1467. Ответов 5
Пытаюсь запустить программу написанную под Win16 с помощью CreateProcess ниже приведенным кодом на Windows 7 x86.
Кликните здесь для просмотра всего текста
Программа запускается, появляется ntvdm процесс, но если посмотреть в диспетчере задач, то мы увидим, что нет потоков запущенных под ntvdm (картинка 1) да и смущает параметр запуска -ws. Смотрю с помощью VDMEnumTaskWOWEx и тоже ничего не находится. Для примера, на картинке 2 запуск с помощью ярлыка. Есть потоки wowexec и приложения. VDMEnumTaskWOWEx тоже их находит. Причем параметр запуска в ntvdm уже -w. В реестре Windows ключ DefaultSeparateVDM стоит в no. Пробовал запускать через ярлык из моего приложения(с помощью ShellExecuteExW), с помощью WinExec, ShellExecuteExW ситуация та же. Если второй раз запустить Win16 приложение (через мою программу), то оно открывается в новом ntvdm, хотя по идее должно в том же (параметры запуска в CreateProcess и ключ в реестре указывают на это). Если тоже самое делать в Windows XP, то все нормально работает. Как мне добиться правильного запуска win16 приложения в Windows 7? Какие параметры запуска у ntvdm и что они означают?
0
|
||||||
| 21.03.2019, 16:08 | |
|
Ответы с готовыми решениями:
5
Различия по весу между Windows 7 Ultimate (x86) и Windows 7 Professional (x86)
Запуск приложения, написанного для Windows 10, в Windows 8 |
|
31 / 27 / 8
Регистрация: 25.05.2015
Сообщений: 113
|
||||||
| 21.03.2019, 19:22 [ТС] | ||||||
|
P.S. Выяснил такую штуку, что после перезагрузки Windows 7 все запускается как надо, но до тех пор пока я не перезапущу свою программу, которая запускает Win16.
Т.е. я обернул выше приведенный код в
0
|
||||||
|
31 / 27 / 8
Регистрация: 25.05.2015
Сообщений: 113
|
|
| 23.03.2019, 13:02 [ТС] | |
|
Попробовал создать приложение Win16 которое через WinExec запускает нужную мне Win16 программу. Все работает, нормально запускает. Потом пытаюсь из моего приложения запустить уже эту Win16 программу (которая запускает нужное мне приложение). Выходит то же самое, что и при запуске напрямую (т.е. как на первой картинке в первом сообщении).
По моему -ws флаг, это запускать приложения в раздельных ntvmd, и вот почему он так делает, если в реестре и в параметрах CreateProcess указано, что надо запускать в одной???
0
|
|
|
31 / 27 / 8
Регистрация: 25.05.2015
Сообщений: 113
|
|
| 29.03.2019, 18:01 [ТС] | |
|
Попробовал запустить Win16 приложение через AutoIT скрипт (команда RUN). Правильно запустилось, работает. Кто нибудь знает, что по капотом у этой команды RUN из AutoIT? Ведь наверняка это или CreateProcess или ShellExecute...
0
|
|
|
31 / 27 / 8
Регистрация: 25.05.2015
Сообщений: 113
|
|
| 01.04.2019, 12:02 [ТС] | |
|
Нашел исходник AutoIT. Действительно под капотом у его команды RUN сидит CreateProcess. Ну думаю ок, попробую скомпилить исходник и через него запустить скрипт AutoIt`а... А вот и фигушки... Ситуация та же, что и через прямой запуск из c++ (хотя через родной AutoIt`овский все правильно запускается)... Короче пока закончились мысли на этот счет...
0
|
|
|
31 / 27 / 8
Регистрация: 25.05.2015
Сообщений: 113
|
|
| 02.04.2019, 17:51 [ТС] | |
|
Переписал я все на AutoIT`е. Возможностей для моей задачи хватило.
0
|
|
| 02.04.2019, 17:51 | |
|
Помогаю со студенческими работами здесь
6
Запуск приложения, написанного для Windows 8, в Windows 7 Запуск Qt приложения на windows 7-10 Как установить Windows 10 x64 (после обновления с Win 7 x86 до Win 10 x86) сохранив лицензию Запуск консольного приложения Windows XP Запуск стороннего приложения из VB в Windows 7 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|