【发布时间】:2021-04-01 14:58:49
【问题描述】:
我编写了一个 GUI 程序,它也可以在控制台中使用参数打开。 当我要求用户输入(密码)时,程序会询问两次。第一个输入被发送到控制台(显然无法识别),第二个被发送到我的程序。
if(!AttachConsole(ATTACH_PARENT_PROCESS))
exit(EXIT_FAILURE);
freopen("CONOUT$", "w", stdout);
freopen("CONOUT$", "w", stderr);
freopen("CONIN$", "r", stdin);
char var[10];
printf("before gets\n");
fgets(var,10,stdin);
printf("after gets\n");
printf("var : %s\n",var);
有没有办法使用控制台然后将其返回给 cmd.exe?
【问题讨论】:
-
你试过
CreateFileA("CONIN$", ...吗? -
没有。您将不得不使用 start /wait yourapp.exe 来避免与 cmd.exe 的无敌竞争。不实用,请改用 AllocConsole()。或者显而易见的方法,GUI 应用程序应该使用一个窗口来接受用户输入。
标签: c windows windows-console