一些有用的函数

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
 
 

TCHAR szCurDir[MAX_PATH];
DWORD GetFullPathName(TEXT(
" C: " ),MAX_PATH,szCurDir,NULL);

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值