在 C++ 中,可以使用 Windows API 函數 GetModuleFileName
來獲取當前進程的模塊文件名(包括路徑和文件名)
#include<iostream>
#include<windows.h>
#include<string>
std::string GetProcessName() {
char buffer[MAX_PATH];
GetModuleFileName(NULL, buffer, MAX_PATH);
std::string processPath = buffer;
size_t lastSlash = processPath.find_last_of("\\/");
if (lastSlash != std::string::npos) {
return processPath.substr(lastSlash + 1);
} else {
return processPath;
}
}
int main() {
std::string processName = GetProcessName();
std::cout << "Current process name: "<< processName<< std::endl;
return 0;
}
這個示例代碼定義了一個名為 GetProcessName
的函數,該函數使用 GetModuleFileName
函數獲取當前進程的模塊文件名。然后,它從路徑中提取文件名并返回。在 main
函數中,我們調用 GetProcessName
函數并輸出結果。
請注意,這個示例僅適用于 Windows 平臺。如果你需要在其他平臺上實現類似的功能,你可能需要使用不同的方法。例如,在 Linux 上,你可以使用 /proc/self/exe
符號鏈接來獲取當前進程的可執行文件路徑。