找回密码
 加入
搜索
查看: 7720|回复: 11

[系统综合] [已解决]关于run函数返回的错误代码

  [复制链接]
发表于 2012-5-21 16:59:00 | 显示全部楼层 |阅读模式
本帖最后由 ppsfxn 于 2012-5-22 09:09 编辑

请问要怎么获得run()函数失败的原因呢?
比如在32位系统下执行64位程序,用shellExecute()函数执行可以弹出这个信息,但用Run()函数就不行。函数总返回0,@error总为1。
【此文件的版本与正在运行的 Windows 版本不兼容。请检查计算机的系统信息以了解需要 x86 (32 位)还是 x64 (64 位)版本的程序,然后联系软件发布者。】
发表于 2012-5-21 17:06:08 | 显示全部楼层
Run() 需要加上工作路径,比如你要运行 "D:\test\test.exe",这时候你最好加上工作路径, Run("D:\test\test.exe","D:\test") 这样。

帮助文档里这么说:

program The full path of the program (EXE, BAT, COM, or PIF) to run (see remarks).
workingdir [optional] The working directory. This is not the path to the program.
 楼主| 发表于 2012-5-21 17:25:14 | 显示全部楼层
Run() 需要加上工作路径,比如你要运行 "D:\test\test.exe",这时候你最好加上工作路径, Run("D:\test\test. ...
MicroBlue 发表于 2012-5-21 17:06



谢谢!
不过我不是要解决run()失败的问题,而是要获取run()失败的原因
发表于 2012-5-21 18:05:35 | 显示全部楼层
回复 3# ppsfxn


    能具体点么? 失败的原因,autoit 不会给出具体的原因,只会返回错误码,你用 @error 就可以获取到。
发表于 2012-5-21 18:12:59 | 显示全部楼层
本帖最后由 netegg 于 2012-5-21 18:15 编辑

@error不为0的话,用_WinAPI_GetErrorMessage试试看,不过不清楚shellexecute是不是对于错误只返回一种错误码,如果是的话,用_winapi_shellexecute
 楼主| 发表于 2012-5-21 18:55:57 | 显示全部楼层
回复 4# MicroBlue


    错误代码也获取不到捏,@error总是返回1
 楼主| 发表于 2012-5-21 18:56:47 | 显示全部楼层
@error不为0的话,用_WinAPI_GetErrorMessage试试看,不过不清楚shellexecute是不是对于错误只返回一种错误 ...
netegg 发表于 2012-5-21 18:12


谢谢!
    _WinAPI_GetErrorMessage可以通过错误代码获取错误信息,但我的问题是错误代码也获取不到。。
 楼主| 发表于 2012-5-21 19:01:37 | 显示全部楼层
具体问题是:程序需要执行一个文件,执行文件时可能因为权限不足、文件格式不正确等等原因会执行出错。我想得到此时出错的代码或原因。
现在的问题是不同情况的执行失败,@error都返回1
想知道@error是不是只能返回1,如果是的话,有什么其它途径可以获取到错误代码?
发表于 2012-5-21 19:52:27 | 显示全部楼层
本帖最后由 netegg 于 2012-5-21 19:53 编辑

回复 8# ppsfxn
不是说了吗,别用shellexecute或run,用api走shellexecute,调出系统的错误码
 楼主| 发表于 2012-5-22 09:09:02 | 显示全部楼层
回复  ppsfxn
不是说了吗,别用shellexecute或run,用api走shellexecute,调出系统的错误码
netegg 发表于 2012-5-21 19:52



  不好意思,没仔细看。
用_api_shellexecute()解决了,错误代码在@extended。
非常感谢!
发表于 2014-5-15 10:16:19 | 显示全部楼层
雷锋精神传天下!谢谢分享!
发表于 2014-7-2 15:38:15 | 显示全部楼层
学习了!
高手真多啊!!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-29 13:05 , Processed in 0.089915 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表