Сейчас на форуме: zds, UniSoft (+6 невидимых)

 eXeL@B —› Программирование —› Вылет программы при попытке её запустить через CreateProcess
Посл.ответ Сообщение

Ранг: 6.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 04 декабря 2012 13:25
· Личное сообщение · #1

Пробовал и CreateProcessA, и CreateProcessW - происходит вылет ошибки с исключением,в отладчике видно что сбой происходит при вызове функции GetModuleHandleA.
Похоже что программа каким-то образом определяет,что её запустили не напрямую а с помощью другой программы. Что можете посоветовать?




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 04 декабря 2012 13:31
· Личное сообщение · #2

normanCRC
убицца ап стенувыложить исходник и прогу, которая запускаться должна

-----
От многой мудрости много скорби, и умножающий знание умножает печаль




Ранг: 6.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 04 декабря 2012 18:11
· Личное сообщение · #3

Исходник собственно :
Code:
  1. CreateProcessW('d:\univer\laba1.exe', nil, nil, nil, false,
  2. //                0, nil, nil, StartInfo, ProcInfo);

В результате долгих поисков,экспериментов с параметрами CreateProcess была выяснена причина неполадки:
лаунчер должен находиться в той же папке,что и запускаемое приложение.
Причем пофигу,какой командой запускать: CreateProcess,ShellExecute или WinExec



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 04 декабря 2012 18:23
· Личное сообщение · #4

BOOL WINAPI CreateProcess(
_In_opt_ LPCTSTR lpApplicationName,
_Inout_opt_ LPTSTR lpCommandLine,
_In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ BOOL bInheritHandles,
_In_ DWORD dwCreationFlags,
_In_opt_ LPVOID lpEnvironment,
_In_opt_ LPCTSTR lpCurrentDirectory,
_In_ LPSTARTUPINFO lpStartupInfo,
_Out_ LPPROCESS_INFORMATION lpProcessInformation
);



Ранг: 1.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 декабря 2012 15:36
· Личное сообщение · #5

параметр lpCommandLine - удобнее, т.к. можно передать параметры
параметр lpCurrentDirectory - для смены текущей директории, уже указали


 eXeL@B —› Программирование —› Вылет программы при попытке её запустить через CreateProcess
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати