c++ - 搜索.exe的路径

标签 c++ windows path

所以我正在寻找一段代码,它允许我搜索正在执行的文件的路径。例如,我正在做一个用于 pendrives 的自动运行程序(示例),但我不知道不知道它是否会以 D:、F:、G: 或其他形式结束,所以程序会搜索它自己的路径并使用一些“if”语句根据找到的路径打开另一个文件。

这是我的想法:

    #include <stdlib.h>
    #include <iostream>
    using namespace std;

    int main () {
    // Insert 'search path' code and needed variables here.

    if (-ThePath- == "d:\\AutoRun.exe")
        {
         system ("d:\\MyFolder\\OtherProgram.exe");
        }
    else if (-ThePath- == "f:\\AutoRun.exe")
        {
         system ("f:\\MyFolder\\OtherProgram.exe");
        }
    else if (-ThePath- == "g:\\AutoRun.exe")
        {
         system ("g:\\MyFolder\\OtherProgram.exe");
        }
    else
        {
         cout << "An error ocurred.\n";
         cout << "Press enter to exit...\n";
         cin.get();
        };
    return 0;
    }

有什么方法可以做到这一点吗?

最佳答案

GetModuleFileName:文档 here

已编辑 - Pedro,Microsoft 的示例代码处理了很多事情。要获取文件路径,您只需要:

TCHAR szPath[MAX_PATH];

if( !GetModuleFileName( NULL, szPath, MAX_PATH ) ) {

    // handle error in GetModuleFileName

} else {

    // now, szPath contains file path

};

关于c++ - 搜索.exe的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19639249/

相关文章:

c++ - 在VS Code调试器中更好地打印2d数组-C++

c++ - Windows 的 Boost Mutex 实现

python - 保持打开一个cmd窗口

java - java中路径名前导反斜杠

java - 获取服务器上的文件路径时出错

C++:错误:数组下标的无效类型 ‘size_t {aka long unsigned int}[size_t {aka long unsigned int}]’

c++ - 如何设置 3D tensorflow Tensor c++ 的元素

mysql - 在 Windows 7 上使用 libmysql.dll

Eclipse maven 无法找到 karma 可执行文件

c++ - 为什么包括守卫对我没有影响?我错过了什么吗?