Как узнать имя файла который запущен на C++. Для того чтобы узнать полный путь имя самого себя, будем использовать функцию GetModuleFileName.
Функция GetModuleFileName извлекает полный путь доступа к файлу, содержащему указанный модуль, которым владеет текущий процесс.
GetModuleFileName работает только с модулями, которыми владеет текущий процесс. Чтобы определить модули, которые принадлежат другому процессу, используют функцию GetModuleFileNameEx.
DWORD GetModuleFileName(
HMODULE hModule,
LPTSTR lpFilename,
DWORD nSize
);
Если функция завершается успешно, возвращаемое значение – длина строки, которая копируется в буфер, в TCHARs. Если буфер является слишком маленьким, чтобы вместить имя модули, строка обрезается до величины nSize, а функция возвращает значение nSize.
hModule — Дескриптор модуля, путь к которому требуется. Если этот параметр – ПУСТО (NULL), GetModuleFileName извлекает путь к исполняемому файлу текущего процесса.В нашем случае используем hInstance.
Код:
#include “windows.h”
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
char buffer[MAX_PATH];
GetModuleFileName(hInstance,buffer,MAX_PATH);
MessageBox(NULL,buffer,”My_Name”,NULL);
return 0;
}
В результате получаем MessageBox с полным путем к самому себе.
Спасибо огромное. То, что искала!