小问题急问:system和Exec如何用? 以前我在程序中曾经使用过的,这两个函数可以启动另一个程序(.exe),忘了怎么用,急等告知!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最好使用CreateProcess STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); si.wShowWindow = SW_HIDE; ZeroMemory( &pi, sizeof(pi) ); // Start the child process. if( !CreateProcess( NULL, // No module name (use command line). strArgs.GetBuffer(strArgs.GetLength()), // Command line. NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. FALSE, // Set handle inheritance to FALSE. 0, // No creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi ) // Pointer to PROCESS_INFORMATION structure. ) { return FALSE; } // Wait until child process exits. WaitForSingleObject( pi.hProcess, INFINITE ); 三个SDK函数 winexec, shellexecute,createprocess可以使用。 WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数值得说一下,比如泥用 SW_SHOWMAXMIZED方式去加栽一个无最大化按钮的程序,就是Neterm,calc等等,就不会出现正常的窗体,但是已经被加到任务列表里了。ShellExecute较 WinExex灵活一点,可以指定工作目录,下面的 Example就是直接打开 c:\temp\1.txt,而不用加栽与 txt文件关联的应用程序,很多安装程序完成后都会打开一个窗口,来显示Readme or Faq,偶猜就是这么作的啦. ShellExecute(NULL,NULL,_T("1.txt"),NULL,_T("c:\\temp"),SW_SHOWMAXMIZED); CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等.来看个很简单的 Example: STARTUPINFO stinfo; //启动窗口的信息 PROCESSINFO procinfo; //进程的信息 CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE, NORMAL_PRIORITY_ CLASS,NULL,NULL, &stinfo,&procinfo); ShellExecute(0, "open", "c:\\1.exe", "", "", SW_SHOW ); system和Exec如何用? 比如System("dir")System("cls");就是输入命令 System 其实是调用了cmd命令吧 谢谢大家,我还有个问题:用什么函数可以将一个文件以某一种方式打开,如用写字板,word等的 RichEdit控件最多能显示多大的文本内容?我的好像超过几兆就不行了 ShellExecute(NULL,"open","wordpad.exe","temp.txt",NULL,SW_SHOW);可以了 __FUNCTION__宏是否被VC6支持? 寻找“分形”爱好者 怎么让缓祯动画停下来喃?请各位大哥帮下小弟哈!~~~谢谢了哦!~~ 50000个连接.(分不够,可以再加200) 请问如何让程序第一次运行时显视窗口,第二次运行时不显视? 我是新手,编译出错,请帮忙~ VC++的配置问题 高分求救 怎样写一个类模板的模板成员函数 求助:如何不使用OnOpendocument()打开文件? [mfc]如何用mfc的udp编程? 请问在不使用MFC的DLL中怎么得到HINSTANCE?
PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
si.wShowWindow = SW_HIDE;
ZeroMemory( &pi, sizeof(pi) );
// Start the child process.
if( !CreateProcess( NULL, // No module name (use command line).
strArgs.GetBuffer(strArgs.GetLength()), // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&pi ) // Pointer to PROCESS_INFORMATION structure.
)
{
return FALSE;
} // Wait until child process exits.
WaitForSingleObject( pi.hProcess, INFINITE );
WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数值
得说一下,比如泥用 SW_SHOWMAXMIZED方式去加栽一个无最大化按钮的程序,就是
Neterm,calc等等,就不会出现正常的窗体,但是已经被加到任务列表里了。
ShellExecute较 WinExex灵活一点,可以指定工作目录,下面的 Example就是直接
打开 c:\temp\1.txt,而不用加栽与 txt文件关联的应用程序,很多安装程序完成后
都会打开一个窗口,来显示Readme or Faq,偶猜就是这么作的啦.
ShellExecute(NULL,NULL,_T("1.txt"),NULL,_T("c:\\temp"),SW_SHOWMAXMIZED);
CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以指
定进程的安全属性,继承信息,类的优先级等等.来看个很简单的 Example:
STARTUPINFO stinfo; //启动窗口的信息
PROCESSINFO procinfo; //进程的信息
CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE, NORMAL_PRIORITY_
CLASS,NULL,NULL, &stinfo,&procinfo);
System("dir")
System("cls");
就是输入命令