Visual Studio C++ アプリケーションから Truecrypt exe を呼び出そうとしましたが、うまくいきCreateProcess
ません。GetLastError()
を示しています127
。
目的は、コマンド ウィンドウを表示せずに exe を起動することです。助けてください。CreateProcessパラメーターの説明を検索して読んでみました。
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include<Windows.h>
int main( void )
{
HANDLE StdInHandles[2];
HANDLE StdOutHandles[2];
HANDLE StdErrHandles[2];
CreatePipe(&StdInHandles[0], &StdInHandles[1], NULL, 4096);
CreatePipe(&StdOutHandles[0], &StdOutHandles[1], NULL, 4096);
CreatePipe(&StdErrHandles[0], &StdErrHandles[1], NULL, 4096);
STARTUPINFO si; memset(&si, 0, sizeof(si)); // zero out
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdInput = StdInHandles[0]; // read handle
si.hStdOutput = StdOutHandles[1]; // write handle
si.hStdError = StdErrHandles[1]; // write handle
PROCESS_INFORMATION pi;
std::cout<< CreateProcess("\"C:\\Program Files\\TrueCrypt\\cmd.exe\\TrueCrypt.exe\"", " //b" , NULL, NULL, FALSE, CREATE_NO_WINDOW , NULL, NULL, &si, &pi)<< "\n" << GetLastError() << "\n";
std::cin.get();
}