путь к исполняемому файлу процесса

Тема в разделе "WASM.WIN32", создана пользователем was_log_a, 28 апр 2007.

  1. was_log_a

    was_log_a New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    97
    Как можно точно определить путь к исполняемому файлу,
    из которого запущен процесс (из самого процесса)?

    GetCommandLine не предлагать - командная строка может не содержать пути к файлу (например, запускаю cmd.exe, перехожу в каталог с нужным процессом, набираю process.exe - командная строка будет "process.exe")
    GetCurrentDirectory тоже не катит - текущий каталог не всегда совпадает с каталогом, в котором лежит exe-шник
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    найти модуль в списке загруженных модулей в PEB, там есть базовое имя (без пути) и имя с полным путём

    точнее, все это сделает GetModuleFileName(GetModuleHandle(0), ...)
     
  3. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    GetModuleFileName уже не катит? Вот интересно, кто тебе GetCommandLine предлагал?? :)))
     
  4. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    argv[0]
     
  5. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    ntcdm
    Какая разница между
    и
     
  6. REALiSTiC

    REALiSTiC New Member

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    33
    ФЫВА ОЛДЖЕ :)

    Код (Text):
    1. .386
    2. .model flat,stdcall
    3. option casemap:none
    4.  
    5. include    windows.inc
    6.  
    7. include    kernel32.inc
    8. includelib kernel32.lib
    9. include    user32.inc
    10. includelib user32.lib
    11.  
    12. .data?
    13. lpBuffer db 666 dup (?)
    14.  
    15. .code
    16. start:
    17.  
    18. invoke  GetModuleFileName, NULL, offset lpBuffer, MAX_PATH+1
    19. invoke MessageBox,0,addr lpBuffer,0,0
    20.  
    21. invoke ExitProcess,0
    22. end start
     
  7. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    ntcdm
    ))) улыбнуло.
     
  8. was_log_a

    was_log_a New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    97
    Спасибо
    Про GetModuleFileName не знал
    Вопрос решен