1.memset(pBuffer,0,pBuffer->length); //初始化一段内存空间,初始值为0
2.sprintf(pBuffer,fomatString,...); //作用和printf差不多,不同的是输出到指定的缓存pBuffer中,而不是输出到DOS控制台。
3.sscanf(pBuffer,fomatString,...); //作用和scanf差不多,但是是将pBuffer缓存中的内容作为输入,按照格式输入到指定变量中
4.TEXT("字符串abc") //TEXT是个宏,加上它编译程序可以根据具体情况,将字符串处理成单字节和双字节(Unicode)
5.GetCurrentDirectory(buffer_length,pBuffer); //获得运行程序的当前路径,不包括文件名(如:C:/)
6. GetModuleFileName(AfxGetInstanceHandle(),sCurrentDirectory,sizeof(sCurrentDirectory));//获得当前运行程序的路径,包括可执行程序的文件名。(如:C:/debug/test.exe)
7.WinExec(cmdLine,SW_HIDE);//执行一条cmd命令
8.我想在VC中执行CMD命令。有如下要求:
1)不显示DOS黑窗口
2)要在命令执行完成后函数再返回。
我试了几个函数。都不能满足要求
1)system();这个函数可以在执行完命令后才返回。但是显示黑窗口
2)WinExec ShellExecute CreateProcess这三个都能不显示黑窗口。但是执行命令后就返回了。没管命令执行成功与否。
解决第二个问题可以使用:
PROCESS_INFORMATION pi;
CreateProcess(..., &pi);
WaitForSingleObject(pi.hProcess, INFINITE);//关键在这里,等待子进程执行完。
9.获得当前进程关联的桌面名称
桌面名称在进程的启动信息里,启动信息存放在数据结构STARTUPINFO中,这里要获得该结构并从中得到桌面名称
VOID GetStartupInfo(LPSTARTUPINFO lpStartupInfo);
lpStartupInfo->lpDesktop字符串内容就是桌面的名字。一般的默认桌面名字“WinSta0/Default”。
示例代码如下:
STARTUPINFO startupInfo;
GetStartupInfo( & startupInfo );
printf( " Desktop Name is %s " ,startupInfo.lpDesktop);
10.获得进程的当前目录 GetFullPathName
/*例如:要获得驱动器C的当前目录,可以像下面这样*/TCHAR szCurDir[MAX_PATH];
DWORD GetFullPathName(TEXT( " C: " ),MAX_PATH,szCurDir,NULL);