【问题标题】:c++ calling ShellExecute without specifying pathc ++调用ShellExecute而不指定路径
【发布时间】:2010-12-25 08:55:45
【问题描述】:

我得到了一个预定义为字符串的文件名。 我可以在不指定完整路径的情况下调用 shellexcute 吗?喜欢:

ShellExecute(NULL, L"open", PreDefiendFileName, NULL, NULL, 0);

否则我该怎么办?

【问题讨论】:

    标签: c++ shellexecute


    【解决方案1】:

    你可以:

    1. 正常失败:让用户知道找不到文件并停止程序。
    2. 使用您*知道*存在的默认文件,并告知用户您正在使用默认文件。

    我鼓励您对这个问题进行防御性思考。例如。确保传递的文件名实际上是一个文件(“它有正确的扩展名吗?”、“它是否存在于文件系统中?”)和那么只有在这些检查通过时才调用ShellExecute 函数。

    【讨论】:

    • 我知道文件在那里。我只需要知道我是否可以调用该文件,比如说:“file.exe”而不是调用“c:/file.exe”
    • 修补它。我怀疑它在程序启动的目录中查找文件。如果这不起作用,请查看堆栈跟踪并跟踪错误,直到找到答案。
    猜你喜欢
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多