Как получить текущее имя исполняемого файла экземпляра из собственного приложения win32 С++?

Возможный дубликат:
Как получить исполняемое имя приложения в Windows (С++ Win32 или С++/CLI)?

Как получить текущее имя и путь файла экземпляра из моего собственного приложения win32 на С++?

Например; если мое приложение было C:\Проекты\testapps\getapppath.exe он мог бы сказать, что путь C:\Проекты\testapps\getapppath.exe

Ответы

Ответ 1

Вы можете сделать это с помощью функции GetModuleFileName.

TCHAR szFileName[MAX_PATH + 1];

GetModuleFileName(NULL, szFileName, MAX_PATH + 1)

Ответ 2

GetCurrentProcess, затем QueryFullProcessImageNameзабастовкa >

Другие ответы лучше для вашего собственного процесса - это предпочтительнее для удаленных. Per документы:

Чтобы получить имя модуля текущий процесс, используйте Функция GetModuleFileName с NULL ручка модуля. Это более эффективно чем называть Функция GetProcessImageFileName с дескриптор текущего процесса.

Чтобы получить имя основного исполняемый модуль для удаленного процесса в формате пути win32, используйте Функция QueryFullProcessImageName.

Ответ 4

UPDATE: работает только для консольных приложений!

Путь программы передается как первый аргумент, он хранится в argv[0] в функции main(argc, argv[]).

Ответ 5

Испытано:

int _tmain(int argc, _TCHAR *argv[])
{
    _tprintf(L"%s", argv[0]);
    return 0;
}

Печать полного пути.