Windows 进程

2018-03-29  本文已影响0人  szn好色仙人
进程基础
入口点函数
进程实例句柄
进程的命令行
环境变量
    auto pEnvironment = GetEnvironmentStrings();
    auto pBegin = pEnvironment;
    vector<wstring> vecStr;
    while(1)
    {
        vecStr.emplace_back(pBegin);

        pBegin += _tcslen(pBegin);
        ++pBegin;

        if (!_tcslen(pBegin))
        {
            break;
        }
    }
    FreeEnvironmentStrings(pEnvironment);

    //GetEnvironmentStrings获取完整环境块
    //FreeEnvironmentStrings对应的内存释放函数

GetEnvironmentStrings function:
https://msdn.microsoft.com/zh-cn/library/windows/desktop/ms683187(v=vs.85).aspx

const int nLenC = 1024;
TCHAR wBuff[nLenC] = {};
GetEnvironmentVariable(TEXT("szn"), wBuff, nLenC);              //wBuff = 0x0015efe4 "big"
 
memset(wBuff, 0, sizeof wBuff);
GetEnvironmentVariable(TEXT("%szn%\\Hello"), wBuff, nLenC);     //wBuff = 0x0038ef98 "HelloWord"
 
memset(wBuff, 0, sizeof wBuff);
ExpandEnvironmentStrings(TEXT("%szn%\\Hello"), wBuff, nLenC);   //wBuff = 0x0035f4f0 "big\Hello"
进程的当前驱动器和目录
SetEnvironmentVariableA("=D:", "D:\\1");//将D盘的当前目录设置为"D:\1"
FILE* fp = _fsopen("D:1.txt", "rb", _SH_DENYWR); 
/*
程序运行在桌面
结果是:打开的是"D:\1\1.txt"
若未定义环境变量"=D:",则打开的文件是"D:\1.txt"
*/
if (fp)
{
    char buff[1024] = {};
    fread(buff, 1, sizeof buff, fp); //buff内容符合"D:\1\1.txt"的内容
    fclose(fp);
}

TCHAR wBuff[_MAX_PATH] = {};
GetFullPathName(TEXT("D:"), MAX_PATH, wBuff, nullptr);  
//wBuff = 0x0038f4f8 "D:\1"
终止进程
上一篇 下一篇

猜你喜欢

热点阅读