Revision: 9512 https://osdn.net/projects/ttssh2/scm/svn/commits/9512 Author: zmatsuo Date: 2021-11-10 22:00:40 +0900 (Wed, 10 Nov 2021) Log Message: ----------- TTWinExec() を ttlib へ移動 Modified Paths: -------------- trunk/teraterm/common/ttlib.h trunk/teraterm/common/ttlib_static_cpp.cpp trunk/teraterm/teraterm/vtwin.cpp -------------- next part -------------- Modified: trunk/teraterm/common/ttlib.h =================================================================== --- trunk/teraterm/common/ttlib.h 2021-10-30 08:35:55 UTC (rev 9511) +++ trunk/teraterm/common/ttlib.h 2021-11-10 13:00:40 UTC (rev 9512) @@ -196,6 +196,8 @@ wchar_t *NormalizeLineBreakCRLF(const wchar_t *src_); BOOL IsRelativePathA(const char *path); BOOL IsRelativePathW(const wchar_t *path); +DWORD TTWinExec(const wchar_t *command); +DWORD TTWinExecA(const char *commandA); #ifdef __cplusplus } Modified: trunk/teraterm/common/ttlib_static_cpp.cpp =================================================================== --- trunk/teraterm/common/ttlib_static_cpp.cpp 2021-10-30 08:35:55 UTC (rev 9511) +++ trunk/teraterm/common/ttlib_static_cpp.cpp 2021-11-10 13:00:40 UTC (rev 9512) @@ -1389,3 +1389,42 @@ return dest_top; } + +/** + * \x83v\x83\x8D\x83O\x83\x89\x83\x80\x82\xF0\x8E\xC0\x8Ds\x82\xB7\x82\xE9 + * + * @param[in] command \x8E\xC0\x8Ds\x82\xB7\x82\xE9\x83R\x83}\x83\x93\x83h\x83\x89\x83C\x83\x93 + * CreateProcess() \x82ɂ\xBB\x82̂܂ܓn\x82\xB3\x82\xEA\x82\xE9 + * @retval NO_ERROR \x83G\x83\x89\x81[\x82Ȃ\xB5 + * @retval \x83G\x83\x89\x81[\x83R\x81[\x83h (NO_ERROR\x88ȊO) + * + * \x83V\x83\x93\x83v\x83\x8B\x82Ƀv\x83\x8D\x83O\x83\x89\x83\x80\x82\xF0\x8BN\x93\xAE\x82\xB7\x82邾\x82\xAF\x82̊\x94 + * CreateProcess() \x82\xCD CloseHandle() \x82\xF0\x96Y\x82\xEA\x82ăn\x83\x93\x83h\x83\x8B\x83\x8A\x81[\x83N\x82\xF0\x8BN\x82\xB1\x82\xB5\x82₷\x82\xA2 + * \x92P\x8F\x83\x82ȃv\x83\x8D\x83O\x83\x89\x83\x80\x8E\xC0\x8Ds\x82ł͂\xB1\x82̊\x94\x82\xF0\x8Eg\x97p\x82\xB7\x82\xE9\x82ƈ\xC0\x91S + */ +DWORD TTWinExec(const wchar_t *command) +{ + STARTUPINFOW si = {}; + PROCESS_INFORMATION pi = {}; + + GetStartupInfoW(&si); + + BOOL r = CreateProcessW(NULL, (LPWSTR)command, NULL, NULL, FALSE, 0, + NULL, NULL, &si, &pi); + if (r == 0) { + // error + return GetLastError(); + } + + CloseHandle(pi.hThread); + CloseHandle(pi.hProcess); + return NO_ERROR; +} + +DWORD TTWinExecA(const char *commandA) +{ + wchar_t *commandW = ToWcharA(commandA); + DWORD e = TTWinExec(commandW); + free(commandW); + return e; +} Modified: trunk/teraterm/teraterm/vtwin.cpp =================================================================== --- trunk/teraterm/teraterm/vtwin.cpp 2021-10-30 08:35:55 UTC (rev 9511) +++ trunk/teraterm/teraterm/vtwin.cpp 2021-11-10 13:00:40 UTC (rev 9512) @@ -3485,45 +3485,6 @@ } /** - * \x83v\x83\x8D\x83O\x83\x89\x83\x80\x82\xF0\x8E\xC0\x8Ds\x82\xB7\x82\xE9 - * - * @param[in] command \x8E\xC0\x8Ds\x82\xB7\x82\xE9\x83R\x83}\x83\x93\x83h\x83\x89\x83C\x83\x93 - * CreateProcess() \x82ɂ\xBB\x82̂܂ܓn\x82\xB3\x82\xEA\x82\xE9 - * @retval NO_ERROR \x83G\x83\x89\x81[\x82Ȃ\xB5 - * @retval \x83G\x83\x89\x81[\x83R\x81[\x83h (NO_ERROR\x88ȊO) - * - * \x83V\x83\x93\x83v\x83\x8B\x82Ƀv\x83\x8D\x83O\x83\x89\x83\x80\x82\xF0\x8BN\x93\xAE\x82\xB7\x82邾\x82\xAF\x82̊\x94 - * CreateProcess() \x82\xCD CloseHandle() \x82\xF0\x96Y\x82\xEA\x82ăn\x83\x93\x83h\x83\x8B\x83\x8A\x81[\x83N\x82\xF0\x8BN\x82\xB1\x82\xB5\x82₷\x82\xA2 - * \x92P\x8F\x83\x82ȃv\x83\x8D\x83O\x83\x89\x83\x80\x8E\xC0\x8Ds\x82ł͂\xB1\x82̊\x94\x82\xF0\x8Eg\x97p\x82\xB7\x82\xE9\x82ƈ\xC0\x91S - */ -DWORD TTWinExec(const wchar_t *command) -{ - STARTUPINFOW si = {}; - PROCESS_INFORMATION pi = {}; - - GetStartupInfoW(&si); - - BOOL r = CreateProcessW(NULL, (LPWSTR)command, NULL, NULL, FALSE, 0, - NULL, NULL, &si, &pi); - if (r == 0) { - // error - return GetLastError(); - } - - CloseHandle(pi.hThread); - CloseHandle(pi.hProcess); - return NO_ERROR; -} - -DWORD TTWinExecA(const char *commandA) -{ - wchar_t *commandW = ToWcharA(commandA); - DWORD e = TTWinExec(commandW); - free(commandW); - return e; -} - -/** * \x90V\x82\xB5\x82\xA2\x90ڑ\xB1 * * TODO