‘壹’ MFC 与DOs通信
mark
你这个需求很奇怪。
MFC本身察兆键可以执行几乎一切dos命令,根本不需要在后台开一个DOS窗口然后隐藏。
不过我还真没有用MFC调用过有返回和交互的脚本或程序。如果你是要实现这种返回和交互,还是试着解决一下“MFC调用其他命令并获败巧取输出猜坦”这个问题吧。
‘贰’ 我想在MFC图形启动初始化的时候执行一条DOS命令,怎么弄不可以弹出控制台窗口
CreateProcess() STARTUPINFO 参数中携灶的 dwFlags 添加 STARTF_USESHOWWINDOW, wShowWindow 用 SW_HIDE;
或者滚猜:
ShellExecute() 中参数大隐型 nShowCmd 用 SW_HIDE
system() 或者
‘叁’ 利用MFC执行dos命令,system()函数的相关问题。
每个system会弹出一个窗口
如果想在同一窗口中执行多个命令,可采用下面方式:
system("命令1 && 命令2 && 命令3...");
如
system("d: && md abc && cd abc && md def");
相当于打开cmd后执行了如下的命令:
d:
md abc
cd abc
md def
我的回答有没有帮到你?
‘肆’ MFC中如何判断ShellExecute函数执行dos命令是否成功
执行成功会返回应用程序句柄; 如果这个值 <= 32, 表示执行错误}
//返回值可能的错误有: = 0 {内存不足}
ERROR_FILE_NOT_FOUND = 2; {文件名错误}
ERROR_PATH_NOT_FOUND = 3; {路径名错误}
ERROR_BAD_FORMAT = 11; {EXE 文件无效}
SE_ERR_SHARE = 26; {发生共享错误}
SE_ERR_ASSOCINCOMPLETE = 27; {文件名不完全或无效}
SE_ERR_DDETIMEOUT = 28; {超时}
SE_ERR_DDEFAIL = 29; {DDE 事务失败}
SE_ERR_DDEBUSY = 30; {正在处理其他 DDE 事务而不能完成该 DDE 事务}
SE_ERR_NOASSOC = 31; {没有相关联的应用程序}
//ShowCmd 参数可选值:SW_HIDE = 0; {隐藏}
SW_SHOWNORMAL = 1; {用最近的大小和位置显示, 激活}
SW_NORMAL = 1; {同 SW_SHOWNORMAL}
SW_SHOWMINIMIZED = 2; {最小化, 激活}
SW_SHOWMAXIMIZED = 3; {最大化, 激活}
SW_MAXIMIZE = 3; {同 SW_SHOWMAXIMIZED}
SW_SHOWNOACTIVATE = 4; {用最近的大小和位置显示, 不激活}
SW_SHOW = 5; {同 SW_SHOWNORMAL}
SW_MINIMIZE = 6; {最小化, 不激活}
SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE}
SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE}
SW_RESTORE = 9; {同 SW_SHOWNORMAL}
SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL}
SW_MAX = 10; {同 SW_SHOWNORMAL}
‘伍’ MFC:怎么在显示窗口之前显示一个类似DOS的命令窗口
使用ShellExecute()函数。如:
ShellExecute(NULL,NULL,
"C:\\WINDOWS\\system32\\cmd.exe"/*这个参数是执行的程序的路径和名称*/,NULL/*这里是命令行参数*/,
NULL,
SW_HIDE/*该参数确定显不显示DOS窗口*/
);
具体用法见msdn
‘陆’ C++MFC窗体和Dos命令窗口中如何使用字符串
第一种方法,直接显示
CString str="123";
SetDlgItemText(IDC_IDET1,str); //IDC_IDET1为编辑框ID
第二种方法,关联变量
通过ClassWizard为编辑框关联一个CString类型的变量,假设为m_Show
CString str="123";
m_Show=str;
UpdateData(FALSE);
‘柒’ MFC程序 调用控制台输出
直接新建控制台程序,哥们肯定会的吧,在对茄亩话框,单亩轮文档之类的工程中,要调用这个函数
UINT WinExec(
LPCSTR lpCmdLine, // address of command line
UINT uCmdShow // window style for new application
);
//第一个参数是你要执行的DOS命令,第二个参数如果你显示控制台窗口可以用SW_SHOW,如果值执行迅纳信命令,不需要显示控制台窗口就采用SW_HIDE
给你举个例子
WinExec(“ipconfig”,SW_SHOW);
‘捌’ MFC程序运行DOS命令如何影藏黑框
用ShellExecute(NULL,"open",cmdbuf,NULL,workpath,SW_HIDE);试试。
‘玖’ MFC怎么调用dos!!!
ShellExecute(NULL,"open","d://WINDOWS//system32//cmd.exe","/c md d://zzz","",SW_SHOW);
ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。
‘拾’ MFC中怎么调用dos,并隐藏dos窗口,还能把dos界面产生的信息显示在MFC的窗口上急需各位
没有简单的实现办法。
这里关键是看,你要用DOS做什么事情。如果是执行系统命令,那么通常都有对应的WINAPI函数,这个是可以没有DOS窗口,而信息返回给程序的,实现你的想法没问题。
如果是特定程序,那么没有很好的简单实现办法。如果是一个瞬间完成程序,则中的办法就是在程序内执行命令行,并通过命令行将“屏显”放到文本文件,MFC程序内打开这个文件即可。这样会有黑屏闪现,但不显示信息。例:
WinExec("dir *.* >d:\\1.txt");