利用环境变量向子进程传递一个参数
来源:互联网 发布:2016淘宝排名靠前技巧 编辑:程序博客网 时间:2024/05/20 20:55
父进程调用下面函数,创建一个子进程并设定环境变量
bool CreateChild(TCHAR* pText){const int BUFSIZE=256;TCHAR chNewEnv[BUFSIZE];LPTSTR lpszCurrentVariable;DWORD dwFlags = 0;TCHAR szAppName[] = TEXT("child.exe");//子进程child.exe放到父进程的根目录下STARTUPINFO si;PROCESS_INFORMATION pi;BOOL fSuccess;//将环境变量字符串拷贝到环境变量内存块中lpszCurrentVariable = (LPTSTR)chNewEnv;if(FAILED(StringCchCopy(lpszCurrentVariable, BUFSIZE, pText))){//拷贝失败return FALSE;}lpszCurrentVariable += lstrlen(lpszCurrentVariable) + 1;//使环境变量内存块以NULL结尾*lpszCurrentVariable = (TCHAR)0;//创建子进程,指定一个新的环境变量内存块SecureZeroMemory(&si, sizeof(STARTUPINFO));si.cb = sizeof(STARTUPINFO);#ifdef UNICODEdwFlags = CREATE_UNICODE_ENVIRONMENT;#endiffSuccess = CreateProcess(szAppName, NULL, NULL, NULL,TRUE, dwFlags, (LPVOID)chNewEnv, //新的环境变量内存块NULL, &si, &pi);if(!fSuccess){//创建子进程失败return FALSE;}return TRUE;}函数的参数:
pText就是要传递给子进程的字符串参数。
由于环境变量的设置格式必须是 Variable=txtContentVariable是环境变量的名字,子进程中通过这个标识来获得字符串内容,txtContent是字符串内容
子进程child.exe的接收方法如下:
const int BUFSIZE=256;LPTSTR pszVal=NULL;DWORD dwFlags = 0;DWORD dwRet;pszVal=(LPTSTR)malloc(BUFSIZE*sizeof(TCHAR));if(pszVal==NULL)return;dwRet = GetEnvironmentVariable(TEXT("Variable"), pszVal, BUFSIZE);if(0==dwRet){MessageBox(TEXT("获取失败"),0,0);return;}MessageBox(pszVal,0,0);free(pszVal);
- 利用环境变量向子进程传递一个参数
- ireport向子报表传递参数详解
- 通过环境变量传递参数给进程
- 子窗口向父窗口传递参数【javascript】
- ireport jasperreport 主报表向子报表传递参数
- html,子页面向父页面传递参数
- flex实现父窗口向子窗口传递参数
- vue-cli 父组件向子组件传递参数2
- vue向子组件传递参数的两种方式
- vue 子组件向父组件传递参数
- 利用javascript向静态html网页传递参数
- Java利用jni向delphi程序传递参数
- Delphi利用jni向java程序中传递参数
- 父进程传递参数给子进程,子进程写文件存储
- mybitis 利用association或collection传递多参数子查询
- Apache 向 CGI 传递环境变量
- 向sqlplus传递参数
- 向脚本传递参数
- Eclipse程序员要掌握的常用快捷键
- POI JXL
- JDBC调用SQL存储过程返回游标
- HDU 2874 Connections between cities
- sizeof 与 strlen
- 利用环境变量向子进程传递一个参数
- 公有IP和私有IP
- opencv中mat和k聚类的问题
- struts2 constant配置 replace与replaceall
- 猜算式
- 26个提升java性能需要注意的地方
- UVa 624 - CD
- SQLite可视化管理工具汇总
- onbeforeunload与onunload事件