Есть ли способ использовать автозаполнение с cmd, созданным CreateProcessAsUser в Windows? - PullRequest
0 голосов
/ 10 июля 2019

Согласно этому примеру , я запускаю windows cmd.exe с CreateProcessAsUser.

И я перенаправляю его дескриптор на мое консольное приложение, поэтому мое приложение выглядит просто понравился cmd.exe.

У меня вопрос, есть ли возможность разрешить моему консольному приложению использовать автозаполнение вкладки, как и в оригинальном cmd.exe?

То, что он делает сейчас, когда я нажимаю клавишу табуляции, это только для ввода «пробела табуляции».

Вот фрагмент кода для этого примера:

  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");
...