如:ShellExecute(Handle,'open','excel.EXE',nil,nil,sw_showNormal);是电子表格的句柄,如果我要其它的如word或者任何一个可执行程序(包括非注册表关联程序)的句柄该如何取得?或者哪里有资料可以参考,小弟不胜感激!

解决方案 »

  1.   

    帮你翻译一下 Win32 Developer's References里面关于ShellExecute函数的东东:
    如果函数执行成功,那么返回值就是该运行的程序的实例句柄(例如你打开一个txt文件,如果成功了,返回的是关联到txt文件类型的应用程序的句柄)。或者是一个DDE服务器应用程序的句柄。
    如果函数执行失败了,那么返回值表示一个错误,值会小于等于32。下面是错误列表
    0 操作系统内存溢出或者系统资源不够
    ERROR_FILE_NOT_FOUND 指定的文件没有找到
    ERROR_PATH_NOT_FOUND 指定的地址没有找到
    ERROR_BAD_FORMAT EXE文件是一个无效的PE文件格式,或者EXE文件损坏了
    SE_ERR_ACCESSDENIED 无权访问该文件 
    SE_ERR_ASSOCINCOMPLETE 文件关联无效
    SE_ERR_DDEBUSY DDE事物无法完成相应,因为DDE事物正在被处理
    SE_ERR_DDEFAIL DDE事务失败。
    SE_ERR_DDETIMEOUT DDE事务无法完成响应,因为请求超时
    SE_ERR_DLLNOTFOUND 指定的DLL文件没找到 
    SE_ERR_FNF 指定文件未找到
    SE_ERR_NOASSOC 没有关联程序
    SE_ERR_OOM 内存不够,无法完成响应
    SE_ERR_PNF 指定的地址未找到
    SE_ERR_SHARE 共享越界异常