mikim110 Temat założony przez niniejszego użytkownika |
CreateProcess » 2013-02-28 14:59:59 Witam mam pytanie do forumowiczów. Jak zamienić funkcję CreateProcess na funkcję _exec działającą pod Windowsem. Chodzi o to żeby nie był tworzony nowy proces tylko powstały był nadpisywany w miejsce starego.
Dziękuję za pomoc |
|
xevuel |
» 2013-02-28 15:26:30 void exec( HANDLE hProcess, LPCTSTR lpApplicationName ) { TerminateProcess( hProcess ); CreateProcess( lpApplicationName ); }
Taki mini pseudokod, zawierający nazwy potrzebnych funkcji. |
|
mikim110 Temat założony przez niniejszego użytkownika |
» 2013-02-28 15:48:03 Dzięki za pomoc. tylko z tego co się zorientowałem funkcja exec została zastąpiona przez _exec [MSDN] _execczyli jak mam taką deklarację funkcji: unsigned long spawnApplication( const char * file, const char * parameters ) { }
CreateProcess( file,( char * ) parameters, NULL, NULL, TRUE, NORMAL_PRIORITY_CLASS, NULL, NULL, & startupInfo, & processInfo )
to jest moja funkcja tworzenia procesu startupInfo to stuktura STARTUPINFO, a processInfo to stuktura PROCESS_INFORMATION jeśli chciałbym zamienić CreateProcess na jakąś funkcję z rodziny _exec, bądź na WinExec lub ShellExecute to czy kod powinien wyglądać mniej więcej tak ShellExecute( 0, "open", file, NULL, NULL, SW_SHOW );
lub tak: _execv( file, parameters );
Ewentualne rady jak sobie z tym poradzić? |
|
xevuel |
» 2013-02-28 15:54:59 Popraw swój post zgodnie z tym kursem: Kurs STC aby łatwiej było go przeczytać. jeśli chciałbym zamienić CreateProcess na jakąś funkcję z rodziny _exec, bądź na WinExec lub ShellExecute |
Dlaczego chcesz to zamieniać? |
|
mikim110 Temat założony przez niniejszego użytkownika |
» 2013-02-28 16:07:50 Takie jest moje zadanie zamiana CreateProcess na wywołanie z "serii" _exec Generalnie chodzi o to jak napisałem na początku żeby nie był tworzony proces potomny |
|
xevuel |
» 2013-02-28 16:58:57 W linku który podałeś, masz przykład jak użyć _exec. |
|
mikim110 Temat założony przez niniejszego użytkownika |
» 2013-02-28 17:28:29 A co z konwersją 'const char*' to 'const char* const*' for argument '2'? Ale ok może napiszę wszystko co i jak. Mam plik .exe, który wywołuje plik .bin. Jest to robione za pomocą CreateProcess a co za tym idzie tworzę proces potomny. Teraz chciałbym aby .bin był nadpisywany w miejsce .exe. i ostatnia rzecz czy po zamianie mam dalej stosować funkcje: CloseHandle( processInfo.hProcess ); CloseHandle( processInfo.hThread );
Przepraszam może za banalne pytania ale dopiero co zacząłem się bawić procesami w C++. |
|
xevuel |
» 2013-02-28 17:49:14 |
|
« 1 » 2 |