有一个现成的wqv.exe的程序,这个程序功能是以只读的方式去打开txt格式的文本。现在我需要在我的对话框中添加一个"帮助"按钮,当我点击该按钮时,直接用wqv.exe来浏览hlp.txt(wqv.exe的路径是f:\wqv.exe hlp.txt的路径是f:\hlp.txt)
请问我能否在帮助按钮中通过CreateProcess这个函数去实现该功能,如果不行请问有什么方法?如何可以,麻烦给出
CreateProcess函数参数的具体内容。
上次我请教过,有人说下面的可以实现,但我试过啦,不行
SECURITY_ATTRIBUTES ProcAttr;
STARTUPINFO si; //一些必备参数设置
memset(&si, 0, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
ProcAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
ProcAttr.lpSecurityDescriptor = NULL;
//si.wShowWindow = SW_HIDE;
PROCESS_INFORMATION pi; //必备参数设置结束
CreateProcess("f:\\wqv.exe", "f:\\hlp.txt", &ProcAttr, NULL, FALSE,
NORMAL_PRIORITY_CLASS , NULL, NULL, &si, &pi);
WaitForSingleObject(pi.hProcess, INFINITE); //等待进程结束请高手指点,谢谢
请问我能否在帮助按钮中通过CreateProcess这个函数去实现该功能,如果不行请问有什么方法?如何可以,麻烦给出
CreateProcess函数参数的具体内容。
上次我请教过,有人说下面的可以实现,但我试过啦,不行
SECURITY_ATTRIBUTES ProcAttr;
STARTUPINFO si; //一些必备参数设置
memset(&si, 0, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
ProcAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
ProcAttr.lpSecurityDescriptor = NULL;
//si.wShowWindow = SW_HIDE;
PROCESS_INFORMATION pi; //必备参数设置结束
CreateProcess("f:\\wqv.exe", "f:\\hlp.txt", &ProcAttr, NULL, FALSE,
NORMAL_PRIORITY_CLASS , NULL, NULL, &si, &pi);
WaitForSingleObject(pi.hProcess, INFINITE); //等待进程结束请高手指点,谢谢
解决方案 »
- 如何读入位图并截取位图的一部分
- 【版务】由于现有版主人数严重不足,拟对版面作出调整,请大家提建议
- 通过wininet向http网页提交数据的程序!!
- 数据库问题
- 虚心请教高手:一个关于Active X的问题(在线等,急)
- 关于SDK程序问题?
- 如何正确编译别人的程序(一个自学者初学时遇到的问题)
- 怎么载程序中设置网卡的地址
- 如何用语句控制编译器对齐内存边界?
- 命令行窗口如何使用Timer?另外,命令行窗口程序能否创建Windows窗口?
- 用ADO代码连接 SQL Server与Access的区别
- vc如何同时执行insert + select @@identity as id?还有select @@identity as id返回不正确?
CreateProcess中的第二个参数,会传入main函数的argv变量。
如果是mfc项目,则会传入CWinApp::m_lpCmdLine变量
CreateProcess(NULL,"f:\\wqv.exe f:\\hlp.txt", &ProcAttr, NULL, FALSE,
NORMAL_PRIORITY_CLASS , NULL, NULL, &si, &pi);
ls的真牛pszImageName
[in] Pointer to a null-terminated string that specifies the module to execute.
The string can specify the full path and filename of the module to execute or it can specify a partial path and filename. The lpszImageName parameter must be non-NULL and must include the module name.
(
LPCTSTR lpApplicationName, // 执行程序文件名
LPTSTR lpCommandLine, // 参数行
LPSECURITY_ATTRIBUTES lpProcessAttributes, // 进程安全参数
LPSECURITY_ATTRIBUTES lpThreadAttributes, //线程安全参数
BOOL bInheritHandles, // 继承标记
DWORD dwCreationFlags, // 创建标记
LPVOID lpEnvironment, // 环境变量
LPCTSTR lpCurrentDirectory, // 运行该子进程的初始目录
LPSTARTUPINFO lpStartupInfo, // 创建该子进程的相关参数
LPPROCESS_INFORMATION lpProcessInformation // 创建后用于被创建子进程的信息
);lpApplicationName:为执行程序的文件名,如果在创建进程时要使用参数,则该参数可以为NULL。
lpCommandLine:为参数行,如果无参数可以为NULL,在有参数传递给进程时如下设置:
lpApplicationName=NULL;lpCommandLine=para,
例如lpCommandLine="c:\\windows\\notepad.exe c:\\autoexec.bat"。
lpProcessAttributes,lpThreadAttributes:分别描述了创建的进程和线程安全属性,如果
使用NULL表示使用默认的安全描述。
bInheritHandles:表示当前进程中的打开的句柄是否能够被创建的子进程所继承。
dwCreationFlags:表示创建标记,通过该标记可以设置进程的创建状态和优先级别。
实在是不好意思~~