powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / CreateProcess
9 сообщений из 9, страница 1 из 1
CreateProcess
    #34726610
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
	// запускаю аналогичную программу в каталоге ниже
	STARTUPINFO si;
	PROCESS_INFORMATION pi;
	ZeroMemory( &si, sizeof(si) );
	si.cb = sizeof(si);
	ZeroMemory( &pi, sizeof(pi) );

	bool bl = CreateProcess( NULL,  // No module name (use command line). 
		"next\\Test.exe",		  // Command line. 
		NULL,             // Process handle not inheritable. 
		NULL,             // Thread handle not inheritable. 
		FALSE,            // Set handle inheritance to FALSE. 
		 0 ,                // No creation flags. 
		NULL,             // Use parent's environment block. 
		NULL,             // Use parent's starting directory. 
		&si,              // Pointer to STARTUPINFO structure.
		&pi );            // Pointer to PROCESS_INFORMATION structure.

Выполняю CreateProcess в консольном приложении, но вместо того, чтобы повявилось второе окошко (test.exe тоже консольное, фактически это копия выполняемого exe) он начинает выполняться в этом же консольном окошке. В чем тут дело?
...
Рейтинг: 0 / 0
CreateProcess
    #34726634
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CREATE_NEW_CONSOLE пробовал?
--------------------------------------------------------------
[не претендую на уникальность]
...
Рейтинг: 0 / 0
CreateProcess
    #34726637
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tubrik T> Выполняю CreateProcess в консольном приложении, но вместо
T> того, чтобы повявилось второе окошко (test.exe тоже
T> консольное, фактически это копия выполняемого exe) он
T> начинает выполняться в этом же консольном окошке. В чем
T> тут дело?в чтении документации:
MS SDK
CREATE_NEW_CONSOLE
The new process has a new console, instead of inheriting the parent's console. This flag cannot be used with the DETACHED_PROCESS flag.

DETACHED_PROCESS
For console processes, the new process does not have access to the console of the parent process. The new process can call the AllocConsole function at a later time to create a new console. This flag cannot be used with the CREATE_NEW_CONSOLE flag.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
CreateProcess
    #34726757
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получилось с DETACHED_PROCESS
...
Рейтинг: 0 / 0
CreateProcess
    #34726797
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tubrikполучилось с DETACHED_PROCESS

вру, получилось но не совсем то
...
Рейтинг: 0 / 0
CreateProcess
    #34727412
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
NULL,             // Use parent's starting directory. 

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

получается бесконечный запуск, т.к. "next\\Test.exe" он все время видит из родитеского каталога

как ему сказать, чтобы использовал свой каталог? только задать путь вручную из вызова CreateProcess вместо NULL? или есть другие способы?
...
Рейтинг: 0 / 0
CreateProcess
    #34727488
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BOOL CreateProcess(
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
--------------------------------------------------------------
[не претендую на уникальность]
...
Рейтинг: 0 / 0
CreateProcess
    #34727493
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CerebrumBOOL CreateProcess(
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
--------------------------------------------------------------
[не претендую на уникальность]

lpCurrentDirectory
[in] Pointer to a null-terminated string that specifies the full path to the current directory for the process. The string can also specify a UNC path.
If this parameter is NULL, the new process will have the same current drive and directory as the calling process. (This feature is provided primarily for shells that need to start an application and specify its initial drive and working directory.)
...
Рейтинг: 0 / 0
CreateProcess
    #34727510
Tubrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это я понимаю, но надеялся, что есть флажек специальный, спасибо
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / CreateProcess
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]