SYSTEMTIME st;
GetLocalTime(&st);
CString fileName;
fileName.Format("%d-%d-%d-%d-%d-%d",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
fileName.Append(".txt")
1、用notepad打开这个fileName,立即返回,不等待notepad结束,自己才能结束。。。
2、一个test.exe(console型),运行test fileName,也是立即返回,不等待,用system("test fileName"),DOS的小黑窗一直后台挂着。。。
6 个解决方案
#1
CreateProcess
#2
必须要以多线程? 有些麻烦哟。。。
fileName怎么作为参数,执行Notepad.exe呢?
#3
sample
http://msdn.microsoft.com/en-us/library/ms682512(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms682512(VS.85).aspx
#4
简单的
HINSTANCE ShellExecute(
__in_opt HWND hwnd,
__in_opt LPCTSTR lpOperation,
__in LPCTSTR lpFile,
__in_opt LPCTSTR lpParameters,
__in_opt LPCTSTR lpDirectory,
__in INT nShowCmd
);
HINSTANCE ShellExecute(
__in_opt HWND hwnd,
__in_opt LPCTSTR lpOperation,
__in LPCTSTR lpFile,
__in_opt LPCTSTR lpParameters,
__in_opt LPCTSTR lpDirectory,
__in INT nShowCmd
);
#5
WinExec,
ShellExecute,
CreateProcess,
都行啊, WinExec简单点, 不过MS不推荐使用了.
你要是必须使用system的话, 可以这样:
system("start pathofnotepad");
ShellExecute,
CreateProcess,
都行啊, WinExec简单点, 不过MS不推荐使用了.
你要是必须使用system的话, 可以这样:
system("start pathofnotepad");
#6
ShellExecute(NULL,NULL,fileName,NULL,NULL,SW_NORMAL);
这个语句会自动根据fileName的后缀名选择合适的方式打开该文件,个人感觉还是比较好用的。
一定要求使用notepad打开的话,可以这样写:
ShellExecute(NULL,"open","notepad.exe",fileName,NULL,SW_NORMAL);
注意:因为notepad.exe在系统的默认路径下的,所以这里没有硬编码其路径。
fileName文件必须在程序的当前工作目录下,否则必须添加上它的完整路径。
通过test.exe程序来打开fileName,同上。如果test.exe程序本身不会立即结束,那么做为Console程序,自然一直会有一个黑框在那里挂着了~~就好像notepad.exe也是一直“挂"在那里的一样。
CreateProcess也不错,具体用法就不赘述了,楼主可参考MSDN。
这个语句会自动根据fileName的后缀名选择合适的方式打开该文件,个人感觉还是比较好用的。
一定要求使用notepad打开的话,可以这样写:
ShellExecute(NULL,"open","notepad.exe",fileName,NULL,SW_NORMAL);
注意:因为notepad.exe在系统的默认路径下的,所以这里没有硬编码其路径。
fileName文件必须在程序的当前工作目录下,否则必须添加上它的完整路径。
通过test.exe程序来打开fileName,同上。如果test.exe程序本身不会立即结束,那么做为Console程序,自然一直会有一个黑框在那里挂着了~~就好像notepad.exe也是一直“挂"在那里的一样。
CreateProcess也不错,具体用法就不赘述了,楼主可参考MSDN。
#1
CreateProcess
#2
必须要以多线程? 有些麻烦哟。。。
fileName怎么作为参数,执行Notepad.exe呢?
#3
sample
http://msdn.microsoft.com/en-us/library/ms682512(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms682512(VS.85).aspx
#4
简单的
HINSTANCE ShellExecute(
__in_opt HWND hwnd,
__in_opt LPCTSTR lpOperation,
__in LPCTSTR lpFile,
__in_opt LPCTSTR lpParameters,
__in_opt LPCTSTR lpDirectory,
__in INT nShowCmd
);
HINSTANCE ShellExecute(
__in_opt HWND hwnd,
__in_opt LPCTSTR lpOperation,
__in LPCTSTR lpFile,
__in_opt LPCTSTR lpParameters,
__in_opt LPCTSTR lpDirectory,
__in INT nShowCmd
);
#5
WinExec,
ShellExecute,
CreateProcess,
都行啊, WinExec简单点, 不过MS不推荐使用了.
你要是必须使用system的话, 可以这样:
system("start pathofnotepad");
ShellExecute,
CreateProcess,
都行啊, WinExec简单点, 不过MS不推荐使用了.
你要是必须使用system的话, 可以这样:
system("start pathofnotepad");
#6
ShellExecute(NULL,NULL,fileName,NULL,NULL,SW_NORMAL);
这个语句会自动根据fileName的后缀名选择合适的方式打开该文件,个人感觉还是比较好用的。
一定要求使用notepad打开的话,可以这样写:
ShellExecute(NULL,"open","notepad.exe",fileName,NULL,SW_NORMAL);
注意:因为notepad.exe在系统的默认路径下的,所以这里没有硬编码其路径。
fileName文件必须在程序的当前工作目录下,否则必须添加上它的完整路径。
通过test.exe程序来打开fileName,同上。如果test.exe程序本身不会立即结束,那么做为Console程序,自然一直会有一个黑框在那里挂着了~~就好像notepad.exe也是一直“挂"在那里的一样。
CreateProcess也不错,具体用法就不赘述了,楼主可参考MSDN。
这个语句会自动根据fileName的后缀名选择合适的方式打开该文件,个人感觉还是比较好用的。
一定要求使用notepad打开的话,可以这样写:
ShellExecute(NULL,"open","notepad.exe",fileName,NULL,SW_NORMAL);
注意:因为notepad.exe在系统的默认路径下的,所以这里没有硬编码其路径。
fileName文件必须在程序的当前工作目录下,否则必须添加上它的完整路径。
通过test.exe程序来打开fileName,同上。如果test.exe程序本身不会立即结束,那么做为Console程序,自然一直会有一个黑框在那里挂着了~~就好像notepad.exe也是一直“挂"在那里的一样。
CreateProcess也不错,具体用法就不赘述了,楼主可参考MSDN。