根据this example,我使用CreateProcessAsUser生成Windows cmd.exe。
然后将其句柄重定向到控制台应用程序,因此我的应用程序 看起来就像是一个cmd.exe。
我的问题是,有什么可以让我的控制台应用程序使用 标签自动补全,就像原始的cmd.exe一样?
当我按Tab键时,现在只输入“制表符空白”即可。
以下是此示例的主要代码段:
PROCESS_INFORMATION pi;
STARTUPINFO si;
// Set up the start up info struct.
ZeroMemory(&si,sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdOutput = hChildStdOut;
si.hStdInput = hChildStdIn;
si.hStdError = hChildStdErr;
if(!CreateProcess(NULL,"C:\\Windows\\System32\\cmd.exe",NULL,NULL,TRUE,
CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi))
DisplayError("CreateProcess");
// Set global child process handle to cause threads to exit.
hChildProcess = pi.hProcess;
// Close any unnecessary handles.
if (!CloseHandle(pi.hThread)) DisplayError("CloseHandle");