请教API高手

Taken 2001-05-21 03:08:00
请问ShellExecute的返回值是什么?怎样使用?
可以象Shell的返回值一样用吗?
...全文
48 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
angzhy 2001-05-21
  • 打赏
  • 举报
回复
【函数】
ShellExecute

【操作系统】
Win9X:Yes
WinNT:Yes

【声明】
ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

【说明】

 
查找与指定文件关联在一起的程序的文件名

【返回值】

Long,非零表示成功,零表示失败。会设置GetLastError

【其它】


【参数表】
hwnd ----------- Long,指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框

lpOperation ---- String,指定字串“open”来打开lpFlie文档,或指定“Print”来打印它

lpFile --------- String,想用关联程序打印或打开一个程序名或文件名

lpParameters --- String,如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数

lpDirectory ---- String,想使用的完整路径

nShowCmd ------- Long,定义了如何显示启动程序的常数值。参考ShowWindow函数的nCmdShow参数
Ninputer 2001-05-21
  • 打赏
  • 举报
回复
简单地说,就是用注册的程序打开文档。就像你双击.doc文件直接打开Word一样
tiongkohlang 2001-05-21
  • 打赏
  • 举报
回复
HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);

Returns a value greater than 32 if successful, or an error value that is less than or equal to 32 otherwise. The following table lists the error values. The return value is cast as an HINSTANCE for backward compatibility with 16-bit Windows applications. 0 The operating system is out of memory or resources.
ERROR_FILE_NOT_FOUND The specified file was not found.
ERROR_PATH_NOT_FOUND The specified path was not found.
ERROR_BAD_FORMAT The .exe file is invalid (non-Win32® .exe or error in .exe image).
SE_ERR_ACCESSDENIED The operating system denied access to the specified file.
SE_ERR_ASSOCINCOMPLETE The file name association is incomplete or invalid.
SE_ERR_DDEBUSY The DDE transaction could not be completed because other DDE transactions were being processed.
SE_ERR_DDEFAIL The DDE transaction failed.
SE_ERR_DDETIMEOUT The DDE transaction could not be completed because the request timed out.
SE_ERR_DLLNOTFOUND The specified dynamic-link library was not found.
SE_ERR_FNF The specified file was not found.
SE_ERR_NOASSOC There is no application associated with the given file name extension.
SE_ERR_OOM There was not enough memory to complete the operation.
SE_ERR_PNF The specified path was not found.
SE_ERR_SHARE A sharing violation occurred.

以上来自msdn
原来不是一个HINSTANCE,只是为了源代码的兼容性。
还有一个ShellExecuteEx如下:

WINSHELLAPI BOOL WINAPI ShellExecuteEx(
LPSHELLEXECUTEINFO lpExecInfo
);

Performs an action on a file.

Returns a nonzero value if successful, or zero otherwise. To get extended error information, call theGetLastError function.
lpExecInfo
Address of a SHELLEXECUTEINFO structure that contains and receives information about the application being executed.
If the function succeeds, it sets the hInstApp member of the SHELLEXECUTEINFO structure to the instance handle to the application that the function started. If the function fails, hInstApp is one of the SE_ERR_ error values indicating the cause of the failure. (An instance handle will always be greater than 32 and an error value less than 32.) Note that the SE_ERR_ error values are for compatibility with the ShellExecute function; use theGetLastError function to retrieve error information.

The error value returned byGetLastError corresponds to the SE_ERR_ values and may be one of the following: ERROR_FILE_NOT_FOUND The specified file was not found.
ERROR_PATH_NOT_FOUND The specified path was not found.
ERROR_DDE_FAIL The DDE transaction failed.
ERROR_NO_ASSOCIATION There is no application associated with the given file name extension.
ERROR_ACCESS_DENIED Access to the specified file is denied.
ERROR_DLL_NOT_FOUND One of the library files necessary to run the application can't be found.
ERROR_CANCELLED The function prompted the user for the location of the application, but the user canceled the request.
ERROR_NOT_ENOUGH_MEMORY There is not enough memory to perform the specified action.
ERROR_SHARING_VIOLATION A sharing violation occurred.

SHELLEXECUTEINFO


typedef struct _SHELLEXECUTEINFO{
DWORD cbSize;
ULONG fMask;
HWND hwnd;
LPCTSTR lpVerb;
LPCTSTR lpFile;
LPCTSTR lpParameters;
LPCTSTR lpDirectory;
int nShow;
HINSTANCE hInstApp;

// Optional members
LPVOID lpIDList;
LPCSTR lpClass;
HKEY hkeyClass;
DWORD dwHotKey;
HANDLE hIcon;
HANDLE hProcess;
} SHELLEXECUTEINFO, FAR *LPSHELLEXECUTEINFO;


Contains information used by the ShellExecuteEx function.

cbSize
Size of the structure, in bytes.
fMask
Array of flags that indicate the content and validity of the other structure members. This can be a combination of the following values: SEE_MASK_CLASSKEY Use the class key given by the hkeyClass member.
SEE_MASK_CLASSNAME Use the class name given by the lpClass member.
SEE_MASK_CONNECTNETDRV Validate the share and connect to a drive letter. The lpFile member is a Universal Naming Convention (UNC) path of a file on a network.
SEE_MASK_DOENVSUBST Expand any environment variables specified in the string given by the lpDirectory or lpFile member.
SEE_MASK_FLAG_DDEWAIT Wait for the DDE conversation to terminate before returning (if the ShellExecuteEx function causes a DDE conversation to start).
SEE_MASK_FLAG_NO_UI Do not display an error message box if an error occurs.
SEE_MASK_HOTKEY Use the hot key given by the dwHotKey member.
SEE_MASK_ICON Use the icon given by the hIcon member.
SEE_MASK_IDLIST Use the item identifier list given by the lpIDList member.
SEE_MASK_INVOKEIDLIST Use the item identifier list given by the lpIDList member to invoke an application. If this member is NULL, the function creates an item identifier list and invokes the application. This flag overrides the SEE_MASK_IDLIST flag.
SEE_MASK_NOCLOSEPROCESS Leave the process running after the ShellExecuteEx function exits. The hProcess member receives the handle to the process.

hwnd
Window handle to any message boxes that the system may produce while executing this function.
lpVerb
Address of a string specifying the name of a verb. The verb specifies an action for the application to perform. This member defaults to Open if no verb is specified.
lpFile
Address of a null-terminated string that specifies the name of the file to open or print. The function can open an executable file or a document file, but it can only print a document file. If the path is not included with the name, the current directory is assumed.
lpParameters
Address of a null-terminated string containing the application parameters. The parameters must be separated by spaces. To include double quotation marks, you must enclose the marks in double quotation marks, as in the following example:
sei.lpParameters = "An example: \"\"\"quoted text\"\"\"";

In this case, the application receives three parameters: An, example:, and "quoted text".

If the lpFile member specifies a document file, this member should be NULL.

lpDirectory
Address of a null-terminated string that specifies the name of the working directory. If this member is not specified, the current directory is used as the working directory.
nShow
Show flags. Can be one of the SW_ values described for theShowWindow function. If the lpFile specifies an executable file, this member specifies how the application is to be shown when it is opened.
hInstApp
Receives a value greater than 32 if successful, or an error value that is less than or equal to 32 otherwise. Error values can be one of the following: SE_ERR_FNF File not found.
SE_ERR_PNF Path not found.
SE_ERR_ACCESSDENIED Access denied.
SE_ERR_OOM Out of memory.
SE_ERR_DLLNOTFOUND Dynamic-link library not found.
SE_ERR_SHARE Cannot share an open file.
SE_ERR_ASSOCINCOMPLETE File association information not complete.
SE_ERR_DDETIMEOUT DDE operation timed out.
SE_ERR_DDEFAIL DDE operation failed.
SE_ERR_DDEBUSY DDE operation is busy.
SE_ERR_NOASSOC File association not available.

lpIDList
Address of an ITEMIDLIST structure to contain an item identifier list uniquely identifying the file to execute. This member is ignored if the fMask member is not set to SEE_MASK_IDLIST.
lpClass
Address of a null-terminated string specifying the name of a file class or a globally unique identifier (GUID).This member is ignored if fMask is not set to SEE_MASK_CLASSNAME.
hkeyClass
Handle to the registry key for the file class. This member is ignored if fMask is not set to SEE_MASK_CLASSKEY.
dwHotKey
Hot key to associate with the application. The low-order word is the virtual key code, and the high-order word is a modifier flag (HOTKEYF_). For a list of modifier flags, see the description of theWM_SETHOTKEY message. This member is ignored if fMask is not set to SEE_MASK_HOTKEY.
hIcon
Handle to the icon for the file class. This member is ignored if fMask is not set to SEE_MASK_ICON.
hProcess
Handle to the newly started application. This member is set on return and is always NULL if fMask is not set to SEE_MASK_NOCLOSEPROCESS.

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧