b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

shellexecuteinfo_afxres.rc_acrord32参数(3)

电脑杂谈  发布时间:2016-12-28 12:06:24  来源:网络整理

ShExecInfo.lpFile = L"c:\\"; //can be a file as well

ShExecInfo.lpParameters = NULL;

ShExecInfo.lpDirectory = NULL;

ShExecInfo.nShow = SW_SHOW;

ShExecInfo.hInstApp = NULL;

ShellExecuteEx(&ShExecInfo);

ShellExecuteEx函数

ShellExecute()有一个难于使用的重大障碍:它不能返回或使你知道新建进程的Handle。也就是说,你不能导出程序并在继续执行之前等待它终止。换句话说ShellExecute()受到了它的16位血统的损害,它仅仅发掘了新的和更有威力的函数CreateProcess()的一个特征子集—WinExec()也支持的子集。然而在4.0以后版本中引进了一个新函数:ShellExecuteEx()。它有一个Shell函数典型的原型,支持多标志,以及上述所有功能,通过提供对进程同步和PIDLs的支持扩展了ShellExecute()。

ShellExecuteEx()函数明确地取代了ShellExecute()。它在shellapi.h中声明:BOOL ShellExecuteEx(LPSHELLEXECUTEINFO lpExecInfo);

SHELLEXECUTEINFO定义如下:

typedef struct _SHELLEXECUTEINFO

{

DWORD cbSize;

ULONG fMask;

HWND hwnd;

LPCTSTR lpVerb;

LPCTSTR lpFile;

LPCTSTR lpParameters;

LPCTSTR lpDirectory;

int nShow;

HINSTANCE hInstApp;

// 可选的成员

LPVOID lpIDList;

LPCSTR lpClass;

HKEY hkeyClass;

DWORD dwHotKey;

HANDLE hIcon;

HANDLE hProcess;

} SHELLEXECUTEINFO, FAR *LPSHELLEXECUTEINFO;

在使用这个结构之前,我们极力建议你把它充填为0,并设置cbSize到结构的实际长度,操作如下:

SHELLEXECUTEINFO sei;

ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO));

sei.cbSize = sizeof(SHELLEXECUTEINFO);

正如声明中的注释所说,结构的成员分成了两组。实际上,头一组使ShellExecuteEx()的功能等价于ShellExecute()。shellexecuteinfo而选项成员组使函数更有力,这正是‘Ex’后缀的由来。hwnd, lpVerb, lpFile, lpParameters, lpDirectory 和 nShow成员等价于ShellExecute()的参数,这是我们已经看到的。而hInstApp成员则是一个输出缓冲,这将由ShellExecute()的返回填写。nShow成员总是表示建立窗口的风,即使lpFile是一个应用程序,它也仅仅说明应用应该怎样显示。无论lpFile是应用程序还是文档文件,nShow必须总是赋为SW_型常量,你是知道的,如果设置为0将获得隐藏窗口。

下面是调用ShellExecuteEx()的最简单方法:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23692-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 朱小宇
      朱小宇

      来吧

    • 李空军
      李空军

      我们的卫星雷达预警系统

    • 周庄王姬佗
      周庄王姬佗

      买了6来S买了来7节奏能慢点吗

    热点图片
    拼命载入中...