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. {  

  1. 3.     SHELLEXECUTEINFOW sei = { sizeof (SHELLEXECUTEINFOW) };  
  2. 4.   
  3. 5.     sei.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI;  
  4. 6.   
  5. 7.     sei.lpFile = fileName;  
  6. 8.     sei.lpParameters = args;  
  7. 9.     sei.lpDirectory = baseDir;  
  8.   
  9.     if  (!ShellExecuteExW(&sei)) {  
  10.         return   false ;  
  11.     }  
  12.   
  13.     if  (wait) {  
  14.         HANDLE  hProcess = sei.hProcess;  
  15.         if  (hProcess != 0) {  
  16.             WaitForSingleObject(hProcess, INFINITE);  
  17.             CloseHandle(hProcess);  
  18.         }  
  19.     }  
  20.   
  21.     return   true ;  
  22. }  

 

  • 上一篇:解析.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:

 

关机

原创粉丝点击