Я пытаюсь отладить и решить некоторые проблемы с помощью приложения макросов Win32, написанного на C ++, однако у меня самая странная проблема.
Мне нужно запустить 16-битную программу, а затем симулировать ввод данных и использовать ShellExecute уже более двух лет. Я вообще не касался этого фактического кода, но теперь он не работает.
Я делаю ShellExecute(NULL, "open", exe_path.c_str(), NULL, "", SW_SHOWDEFAULT);
. Это работало безупречно в течение многих лет, но внезапно перестало работать . Это дает мне код ошибки ACCESS_DENIED. Я прогуглил, и, видимо, это довольно распространенная проблема с запуском 16-битных приложений.
Среда рабочей станции XP SP2 вообще не изменилась, и она действительно работала, пока я не перестроил некоторое время назад (я перестраивал ее раньше много раз).
Код находится внутри функции оконной процедуры, и когда я вынимаю ее и запускаю программу в функции WinMain, она работает, но код должен быть в оконной процедуре ...
Я пробовал множество альтернатив, но все они дают одну и ту же проблему.
Самая большая проблема с этим - , когда он работал, внезапно решил, что не собирается без изменений и кода, и среды! Фактически, это было примерно на полпути через тестирование изменений что он думал, что перестанет работать.
Пожалуйста, помогите, поскольку я не могу ничего сделать без запуска программы. Это первый шаг в коде, который я отлаживаю!