ShellExecute函数是用来打开或者打印一个指定的文件。这个文件可以是一个可执行文件,也可以是一个文档文件。它的语法如下:
HINSTANCE ShellExecute(HWND hwnd, LPCTSTR lpoperation, LPCTSTR lpFile,
LPTSTR lpParameters,LPCTSTR lplnrectory,INTnshowCmd ) ;
它的参数是:
hwnd这个参数将指定一个父窗口。这个窗口将接收一个应用过程的任何消息。例如,一个应用程序可产生一个消息对话框来报告一个错误。
IPOPeration它是一个空终端字符串,用来说明操作的模式。下面的字符串是有效的:
(1)“OPen”它将打开由参数IPFile指定的文件。这个文件可以是一个可执行文件,也可以是一个文档文件。
(2)“Print“它将打印由参数IPFile指定的文件,这个文件是一个文档文件。当它是一个可执行文件的时候,仍可以执行这个程序。
lpOPeration参数可以设置为NULL,在这种情况下,这个函数将打开由参数lpFlle指定的文件。
IPFile它是一个空终端字符串,用来说明要打开或者打印的文件。
IPParameters当参数IPFile指定的是一个可执行文件时,参数lpParameters是一个空终端字符串,用来说明要打开程序的参数。当参数lpFile指定的是一个文档文件时,参数IPParameters应设置为空(NULL)。
IPDirectory它是一个空终端字符串,用来说明要打开或者打印的文件目录。
nshowCmd当参数IPFile指定一个可执行文件的时候,参数nshowCmd将指定在打开应用程序后如何显示这个应用程序。它可以是下面的数值;
(1)SW_HIDE隐藏这个窗口,并激活另一个窗口;
(2)SW_MAXIMIZE最大化指定的窗口;
(3)SW_MINIMIZE最小化指定的窗口,并激活在“Z”次序的下一层窗口;
(4)SWRESTORE激活并显示这个窗口;当这个窗口是最小化或者最大化, Win-dOWS 将储它的原来位置和大小;
(5)SWSHOW激活这个窗口,并以当前的位置和大小来显示;
(6)SW_SHOWDEFAULT以STARTUPINFO结构指定的SW_FLAG来设置显示的状态,STARTUPINFO是在应用程序运行时,由函数CreateProcess初始他的,一个应用程序应以这个标志位调用函数Showwindow来设置主窗口的显示状态;
(7)SW_SHOWMAXIMIZED激活这个窗口,并最大化地显示;
(8)SW_SHOWMINIMIZED激活这个窗口,并最小化地显示;
(9)SW_SHOWMINNOACTIVE最小化地显示这个窗口,原来激活的窗口仍然激活;
(10)SW_SHOWNA以当前的状态来显示这个窗口,原来激活的窗口仍然激活;
1
(11) SW_SHOWNOACTIVATE以最近的位置和大小来显示这个窗口,原来激活的窗口仍然激活;
(12) SW_SHOWNORMAL激活并显示这个窗口,当这个窗口是最小化或者最大地.Windows将存储它的原来的位置和大小,应用程序应在初始化的时候指定这个标志让。
当参数lpFile指定的是一个文档文件的时候,nshowCmd应设为0。
对返回值而言,当这个函数调用成功的时候,将返回被执行的应用程序的句柄,或者是动态数据链接(DDE)服务器应用程序的句柄;当这个函数调用失败的时候,将近日一个小于或者等于排的错误码,下面是这些错误码的意思;
① 0操作系统内存不够或者资源不够;
② ERROR_FILE_NOT_FOUND 指定的文件没有被发现;
② ERROR_PATH_NOT_FOUND 指定的路径没有被发现;
④ ERROR_BAD_FORMAT 这个可执行文件是无效的;
⑤ SE_ERR_ACCESSDENIED 操作系统不能访问被指定的文件(仅仅是 Windows95才有);
⑥ SE_ERR_ASSOCINCOMPLETE 被指定的文件名是不完整的或者是无效的;
⑦ SE_ERR_DDEBUSY 由于别的DDE传送正在进行,这个DDE传达将不能完成;
⑧ SE_ERR_DDEFAIL DDE传送失败;
⑨ SE_ERR_DDETIMUT 由于请求超出时间,DDE传达将不能完成;
⑩ SE_ERR_DLLNOTFOUND 被指定的动态连接库没有被发现(仅仅是Windows95才有);
⑾ SE_ERRFNF 被指定的文件没有被发现(仅仅是Windows 95才有);
⑿ SE_ERR_NOASSOC 没有应用程序和被指定文件的扩展名相关联;
⒀ SE_ERR_OOM 没有足够的内存来完成这个操作(仅仅是 Windows 95才有);
⒁ SE_ERR_PNF 被指定的路径没有被发现(仅仅是Windows 95才有);
⒂ SE_ERR_SHARE 发生共享冲突。
在Windows 95里面,你可以使用函数ShellExecute来打开或者管理一个Windows 95的文件夹,这时,我们可以使用以下的方法:
ShellExecute(handle,NULL,'path_to_folder',NIL,NIL,SW_SHOWNORMAL);
或:
ShellExecute(handle,'Open','path_to_folder',NIL,NIL,SW_SHOWNORMAL);
当要管理一个文件夹,可以使用下面的方法:
ShellExeCUte(handle,'explore','path_to_folder',NIL,NIL,SW_ SHOWNORMAL);