shell_3
来源:互联网 发布:三层网络 编辑:程序博客网 时间:2024/04/29 13:17
提供 SE_ERR_XXX 之类的错误代码是为了兼容 ShellExecute。使用 GetLastError可以获得更详细的错误信息。返回值可以使下列之一:
Error
Description
ERROR_FILE_NOT_FOUND
指定文件不存在
ERROR_PATH_NOT_FOUND
指定路径不存在
ERROR_DDE_FAIL
动态数据交换 (DDE) 处理失败
ERROR_NO_ASSOCIATION
没有与制定文件名扩展对应的应用程序
ERROR_ACCESS_DENIED
访问指定文件被拒绝
ERROR_DLL_NOT_FOUND
无法找到运行应用程序所必须的库文件
ERROR_CANCELLED
这个函数要求用户提供更多其他信息(译注:比如弹出对话框),但请求用户被取消了
ERROR_NOT_ENOUGH_MEMORY
没有足够的内存来执行操作
ERROR_SHARING_VIOLATION
共享违规发生了
Windows 95/98/Me: ShellExecuteEx 为 Microsoft Layer for Unicode (MSLU) 所支持。为了使用这个函数,必须添加额外的文件到应用程序中去,请参考: Microsoft Layer for Unicode on Windows Me/98/95 Systems .
函数信息:
Minimum DLL Version
shell32.dll version 3.51 or later
Custom Implementation
No
Header
shellapi.h
Import library
shell32.lib
Minimum operating systems
Windows NT 4.0, Windows 95
Unicode
Implemented as ANSI and Unicode versions
下面举例说明如何使用这个函数, executePackage 这个函数用来执行某个应用程序。
1. bool executePackage( LPCWSTR fileName, LPCWSTR args, LPCWSTR baseDir, bool wait)
2. {
- 3. SHELLEXECUTEINFOW sei = { sizeof (SHELLEXECUTEINFOW) };
- 4.
- 5. sei.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI;
- 6.
- 7. sei.lpFile = fileName;
- 8. sei.lpParameters = args;
- 9. sei.lpDirectory = baseDir;
- if (!ShellExecuteExW(&sei)) {
- return false ;
- }
- if (wait) {
- HANDLE hProcess = sei.hProcess;
- if (hProcess != 0) {
- WaitForSingleObject(hProcess, INFINITE);
- CloseHandle(hProcess);
- }
- }
- return true ;
- }
- 上一篇:解析.bmp图片的存放结构
- 下一篇:在mobile上调用SHCameraCapture接口进行拍照
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
个人资料
okadler0518
- 访问:49445次
- 积分:1963分
- 排名:第2559名
- 原创:134篇
- 转载:57篇
- 译文:1篇
- 评论:36条
文章搜索
窗体顶端
窗体底端
文章分类
- Android(2)
- C#(10)
- C/C++(23)
- Debugging Tools(1)
- HTTP / SOCKET(1)
- iphone(3)
- java(2)
- Symbian(2)
- WPhone7(4)
- 情感类(9)
- 社会-与-生活(4)
- 网络(5)
文章存档
- 2011年07月(1)
- 2011年06月(2)
- 2011年04月(1)
- 2011年03月(4)
- 2011年01月(4)
- 2010年12月(2)
- 2010年11月(1)
- 2010年10月(2)
- 2010年09月(3)
- 2010年08月(2)
- 2010年07月(3)
- 2010年06月(1)
- 2010年05月(2)
- 2010年04月(4)
- 2010年03月(3)
- 2010年01月(5)
- 2009年12月(8)
- 2009年11月(2)
- 2009年10月(1)
- 2009年08月(6)
- 2009年07月(10)
- 2009年06月(27)
- 2009年05月(18)
- 2009年04月(6)
- 2009年03月(3)
- 2009年02月(2)
- 2009年01月(3)
- 2008年12月(33)
- 2008年11月(17)
- 2008年10月(16)
阅读排行
- WTL (3185)
- 多普达818上网设置详细图解 (1476)
- 如何制作.CAB安装包及ini文件中的字... (1382)
- cout输出16进制 (1365)
- C# 与 C++ 数据类型对照 (1244)
- Windows Mobile SDK (1129)
- SHELLEXECUTEINFO 和 S... (1121)
- gzip zip 和zlib (1055)
- 配置PPC模拟器网络环境,调试TCP/U... (911)
- COM组件IImagingFactory... (778)
评论排行
- BeginPaint和GetDC有什么区... (6)
- Pocket PC 2003 PC网卡上... (5)
- 关于C++主函数参数--图文并茂 (4)
- windows mobile 程序的打... (2)
- 搜集资料 (2)
- //用new创建一个二维数组,有两种方法... (2)
- cout输出16进制 (1)
- CreateProcess传递参数到_t... (1)
- WinCE电源管理应对有技巧 (1)
- C++win32 SDK下面如何修改应用... (1)
推荐文章
最新评论
- cout输出16进制
mapeijie888: 够清楚 .................遇见你专家了
- Pocket PC 2003 PC网卡上网设置
gejjun: 装了虚拟网卡就有了。
- BeginPaint和GetDC有什么区别?
okadler0518: 绘制图像,必须要的是刷新。WM_PAINT就是这个功能。图片的绘制有3-4中方法,也就是函数不一样而...
- BeginPaint和GetDC有什么区别?
Wang471981125: 除了这种机制 还有其他的方法来进行图像的绘制吗?
- BeginPaint和GetDC有什么区别?
okadler0518: gdc = BeginPaint (hwnd, &ps);gdc = GetDC (hwnd...
- BeginPaint和GetDC有什么区别?
okadler0518: 2. WM_PAINT里面,最好用BeginPaint。我一开始都说很清楚了。
- BeginPaint和GetDC有什么区别?
okadler0518: 1. break,是switch的循环跳出语句。是c/c++基础。
- BeginPaint和GetDC有什么区别?
shmylm4201: 想问一下,假如我写一个WM_PAINT:break;这表示什么意思?还有我想在一个窗口中播放rtsp...
- POOM - 通讯录
shangwei97: 正要做这方面的工作。谢谢
- WinCE电源管理应对有技巧
leewckk:
关机