ShellExecute成功后返回值究竟是什么?

看网上的文章介绍是返回被启动的程序的句柄,而看msdn上则说则是一个大于32的值究竟哪个是正确的?另外,如果msdn上是正确的,那我要如何取得被启动的程序的句柄啊?有没有... 看网上的文章介绍是返回被启动的程序的句柄,而看msdn上则说则是一个大于32的值

究竟哪个是正确的?

另外,如果msdn上是正确的,那我要如何取得被启动的程序的句柄啊?

有没有高手能说一下,谢谢^_^
展开
 我来答
糖糖寳寳
推荐于2016-05-04 · TA获得超过6.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:92%
帮助的人:3981万
展开全部
它的返回值是PROCESS_INFORMATION。
返回值可能有的错误如下: = 0 {内存不足}
ERROR_FILE_NOT_FOUND = 2; {文件名错误}
ERROR_PATH_NOT_FOUND = 3; {路径名错误}
ERROR_BAD_FORMAT = 11; {EXE 文件无效}
SE_ERR_SHARE = 26; {发生共享错误}
SE_ERR_ASSOCINCOMPLETE = 27; {文件名不完全或无效}
SE_ERR_DDETIMEOUT = 28; {超时}
SE_ERR_DDEFAIL = 29; {DDE 事务失败}
SE_ERR_DDEBUSY = 30; {正在处理其他 DDE 事务而不能完成该 DDE 事务}
SE_ERR_NOASSOC = 31; {没有相关联的应用程序}
//ShowCmd 参数可选值:SW_HIDE = 0; {隐藏}
SW_SHOWNORMAL = 1; {用最近的大小和位置显示, 激活}
SW_NORMAL = 1; {同 SW_SHOWNORMAL}
SW_SHOWMINIMIZED = 2; {最小化, 激活}
SW_SHOWMAXIMIZED = 3; {最大化, 激活}
SW_MAXIMIZE = 3; {同 SW_SHOWMAXIMIZED}
SW_SHOWNOACTIVATE = 4; {用最近的大小和位置显示, 不激活}
SW_SHOW = 5; {同 SW_SHOWNORMAL}
SW_MINIMIZE = 6; {最小化, 不激活}
SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE}
SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE}
SW_RESTORE = 9; {同 SW_SHOWNORMAL}
SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL}
SW_MAX = 10; {同 SW_SHOWNORMAL}
wawoo2007
推荐于2017-11-25 · TA获得超过626个赞
知道小有建树答主
回答量:465
采纳率:0%
帮助的人:638万
展开全部
参考MSDN的说法,这个函数的返回值是一个整数,只是在返回时被转换成了一个HINSTANCE类型,不过它并不是一个真正的HINSTANCE,所以它唯一的作用就是重新转换成整数,来判断操作是否成功。

如果需要控制创建的应用程序,必须使用另外的API
CreateProcess
它的返回参数PROCESS_INFORMATION包含了子进程的句柄。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蔡文碧
2008-03-12 · TA获得超过249个赞
知道小有建树答主
回答量:528
采纳率:0%
帮助的人:404万
展开全部
函数】
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参数

实例如下:

Private Declare Function 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
Const SW_SHOWNORMAL = 1
Private Sub Form_Load()
'Send an E-Mail to the KPD-Team
ShellExecute Me.hwnd, vbNullString, "mailto:KPDTeam@Allapi.net", vbNullString, "C:\", SW_SHOWNORMAL
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式