[已解决]关于run函数返回的错误代码
本帖最后由 ppsfxn 于 2012-5-22 09:09 编辑请问要怎么获得run()函数失败的原因呢?
比如在32位系统下执行64位程序,用shellExecute()函数执行可以弹出这个信息,但用Run()函数就不行。函数总返回0,@error总为1。
【此文件的版本与正在运行的 Windows 版本不兼容。请检查计算机的系统信息以了解需要 x86 (32 位)还是 x64 (64 位)版本的程序,然后联系软件发布者。】 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 The working directory. This is not the path to the program. Run() 需要加上工作路径,比如你要运行 "D:\test\test.exe",这时候你最好加上工作路径, Run("D:\test\test. ...
MicroBlue 发表于 2012-5-21 17:06 http://autoitx.com/images/common/back.gif
谢谢!
不过我不是要解决run()失败的问题,而是要获取run()失败的原因 回复 3# ppsfxn
能具体点么? 失败的原因,autoit 不会给出具体的原因,只会返回错误码,你用 @error 就可以获取到。 本帖最后由 netegg 于 2012-5-21 18:15 编辑
@error不为0的话,用_WinAPI_GetErrorMessage试试看,不过不清楚shellexecute是不是对于错误只返回一种错误码,如果是的话,用_winapi_shellexecute 回复 4# MicroBlue
错误代码也获取不到捏,@error总是返回1 @error不为0的话,用_WinAPI_GetErrorMessage试试看,不过不清楚shellexecute是不是对于错误只返回一种错误 ...
netegg 发表于 2012-5-21 18:12 http://autoitx.com/images/common/back.gif
谢谢!
_WinAPI_GetErrorMessage可以通过错误代码获取错误信息,但我的问题是错误代码也获取不到。。 具体问题是:程序需要执行一个文件,执行文件时可能因为权限不足、文件格式不正确等等原因会执行出错。我想得到此时出错的代码或原因。
现在的问题是不同情况的执行失败,@error都返回1
想知道@error是不是只能返回1,如果是的话,有什么其它途径可以获取到错误代码? 本帖最后由 netegg 于 2012-5-21 19:53 编辑
回复 8# ppsfxn
不是说了吗,别用shellexecute或run,用api走shellexecute,调出系统的错误码 回复ppsfxn
不是说了吗,别用shellexecute或run,用api走shellexecute,调出系统的错误码
netegg 发表于 2012-5-21 19:52 http://autoitx.com/images/common/back.gif
不好意思,没仔细看。
用_api_shellexecute()解决了,错误代码在@extended。
非常感谢! 雷锋精神传天下!谢谢分享! 学习了!
高手真多啊!!!
页:
[1]